Windows.System.Launcher.LaunchUriAsync を使う

Windows.System.Launcher.LaunchUriAsync を使う

LaunchUriAsyncメソッドはMDSNによると、「指定されたURIのURI スキーム名に関連付けられている既定のアプリケーションを開始します。」と記述されています。では、このメソッドを使ってWebブラウザを起動してコンテンツ表示してみよう。

プロジェクトを作成する「名前」は「LaunchUriAsync Sample」とします。

MainPage.xamlを起動して、Buttonコントロールを1個だけ配置しておきます。プロパティから「名前」には「StartButton」と付けておきます。Contentプロパティには「ブラウザ起動」とし、「書体」や「文字サイズ」は読者が好きな値を設定してください。

コントロールをレイアウトする

筆者がレイアウトすると図6のようになりました。

図6 Buttonコントロールを1個だけ配置した
図6 Buttonコントロールを1個だけ配置した

書き出されるXAMLコードはリスト6になります。

リスト6 書き出されたXAMLコード(MainPage.xaml)

  • (1)特に説明を加える個所はない。例のごとくGrid要素をViewBoxで括っている。ViewBox要素は、伸縮およびスケーリングを実行して単一の子を、使用可能な領域全体に引き伸ばすことができるコンテンツ デコレータを定義する。

 

<Page
    x:Class="LaunchUriAsync_Sample.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:LaunchUriAsync_Sample"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">
    <Viewbox>■(1)
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Button x:Name="startButton" Content="ブラウザ起動" HorizontalAlignment="Left" Height="145" Margin="0,0,0,0" VerticalAlignment="Top" Width="573" FontFamily="Meiryo UI" FontSize="72" Background="Gold" Foreground="Navy"/>
    </Grid>
  </Viewbox>■(1)
 </Page>

[ブラウザ起動]ボタンをダブルクリックして、このボタンがクリックされた時の処理を記述します。

プログラム—コード(MainPage.xaml.vb)

[ブラウザ起動]ボタンをタップした時の処理は、リスト4のようになります。

リスト7 [ブラウザ起動]ボタンをタップした時の処理

UriにThinkITぺ—ジを指定して、Windows.System.Launcher.LaunchUriAsyncメソッドでThinkITページを表示している。

 

Private Async Sub startButton_Click(sender As Object, e As RoutedEventArgs) Handles startButton.Click
        Dim myAppsUri = New Uri("http://www.ThinkIt.co.jp")
        Await Windows.System.Launcher.LaunchUriAsync(myAppsUri)
    End Sub

実行すると図7のように表示されます。

図7 画面が二つに分割されてブラウザ画面が表示された
図7 画面が二つに分割されてブラウザ画面が表示された

画面が二つに分割されて表示されます。ブラウザの画面を拡大したいなら、中央のバーを左にドラッグすればブラウザだけが表示されます(図8)

図8 中央のバーを左にドラグしてブラウザの画面を広げた
図8 中央のバーを左にドラグしてブラウザの画面を広げた

今回は、WebViewコントロール、WinRT XAML ToolkitによるWebBrowserコントロール、Windows.System.Launcher.LaunchUriAsyncメソッド、を使ったブラウザの表示方法を3つ解説してきました。どの方法を用いてもストアの「認定の要件」が改定された現状では、リジェクトの対象にはならないので安心です。だからと言って、Webブラウザを起動して、その中のコンテンツだけで処理を完結させるのは、Windows ストア アプリとしては、あまり望ましい方法とは思えません。全ての処理をWebブラウザにゆだねるのは、正当なプログラムとは言えないと、筆者は思っているからです。このようなWebブラウザは適材適所に使って行くことがベストだと思います。

次回はストーリーボードを使ったアニメーションの実装方法を解説します。お楽しみに。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30