WebView.AddWebAllowedObject(String, Object) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
public:
virtual void AddWebAllowedObject(Platform::String ^ name, Platform::Object ^ pObject) = AddWebAllowedObject;
void AddWebAllowedObject(winrt::hstring const& name, IInspectable const& pObject);
public void AddWebAllowedObject(string name, object pObject);
function addWebAllowedObject(name, pObject)
Public Sub AddWebAllowedObject (name As String, pObject As Object)
パラメーター
例
この例では、 AllowForWeb 属性を使用してクラスを装飾する方法を示します。
using Windows.Foundation.Metadata;
namespace MyRuntimeComponent
{
[AllowForWeb]
public sealed class MyNativeClass
{
public void NativeMethod()
{
...
}
...
}
}
この例では、 NavigationStarting イベントを 使用して、ナビゲーションの開始時にオブジェクトを挿入する方法を示します。
<WebView x:Name="webView" Source="https://www.contoso.com/index.html"
NavigationStarting="webView_NavigationStarting"/>
private void webView_NavigationStarting(WebView sender, WebViewNavigationStartingEventArgs args)
{
if (args.Uri.Host == "www.contoso.com")
{
webView.AddWebAllowedObject("nativeObject", new MyNativeClass());
}
}
Web ページのスクリプト内のネイティブ オブジェクトにアクセスする方法を次に示します。
<script type='text/javascript'>
nativeObject.nativeMethod(); // Call the projected WinRT method.
</script>
注釈
WebView 内の最上位ドキュメントのコンテキストで、ネイティブ Windows ランタイム オブジェクトをグローバル パラメーターとして公開するには、このメソッドを使用します。 Windows ランタイム オブジェクトを投影するには、アジャイルで AllowForWeb 属性で装飾する必要があります。
注意
Microsoft Visual Basic、C#、または Visual C++ コンポーネント拡張機能 (C++/CX) を使用して作成されたランタイム クラスは、既定ではアジャイルです。 詳細については、「スレッド処理とマーシャリング」および「マルチスレッド環境でのWindows ランタイム オブジェクトの使用」を参照してください。
AddWebAllowedObject に渡されるオブジェクトは、アプリ アセンブリとは別のWindows ランタイム コンポーネントからインポートする必要があります。 これは、 AllowForWeb 属性が WebView セキュリティ サブシステムによって識別されるプロパティである必要があります。 アプリ プロジェクトから クラスを使用する場合、AddWebAllowedObject は機能しません。
ネイティブ オブジェクトにアクセスする新しいページに WebView が移動するたびに、AddWebAllowedObject を呼び出す必要があります。 WebView.NavigationStarting イベントを使用すると、ナビゲーションの開始時にオブジェクトを挿入できます。