Windows での WebView 実行モード
このプラットフォーム固有の設定は、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
を返すこともできます。