Windows での WebView 実行モード

Download Sampleサンプルのダウンロード

このプラットフォーム固有の設定は、WebView がコンテンツをホストするスレッドを設定します。 これは、WebView.ExecutionMode バインド可能なプロパティを WebViewExecutionMode 列挙値に設定することで XAML で使用されます。

<ContentPage ...
             xmlns:windows="clr-namespace:Xamarin.Forms.PlatformConfiguration.WindowsSpecific;assembly=Xamarin.Forms.Core">
    <StackLayout>
        <WebView ... windows:WebView.ExecutionMode="SeparateThread" />
        ...
    </StackLayout>
</ContentPage>

あるいは、Fluent API を使用して C# から使用することもできます。

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.WindowsSpecific;
...

WebView webView = new Xamarin.Forms.WebView();
webView.On<Windows>().SetExecutionMode(WebViewExecutionMode.SeparateThread);

WebView.On<Windows> メソッドでは、このプラットフォーム固有設定がユニバーサル Windows プラットフォームでのみ実行されるように指定します。 Xamarin.Forms.PlatformConfiguration.WindowsSpecific 名前空間内の WebView.SetExecutionMode メソッドは、WebView がそのコンテンツをホストするスレッドを設定するために使用され、WebViewExecutionMode 列挙では次の 3 つの可能な値が提供されます。

  • SameThread は、コンテンツが UI スレッドでホストされていることを示します。 これは、Windows の WebView プロパティの既定値です。
  • SeparateThread は、コンテンツがバックグラウンド スレッドでホストされていることを示します。
  • SeparateProcess は、コンテンツがアプリ プロセスとは別のプロセスでホストされていることを示します。 WebView インスタンスごとに個別のプロセスがあるわけではないため、アプリのすべての WebView インスタンスが同じ個別のプロセスを共有します。

さらに、GetExecutionMode メソッドを使用して、WebView の現在の WebViewExecutionMode を返すこともできます。