次の方法で共有


WebView.AddWebAllowedObject(String, Object) メソッド

定義

ネイティブ Windows ランタイム オブジェクトをグローバル パラメーターとして WebView 内の最上位のドキュメントに追加します。

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)

パラメーター

name
String

Platform::String

winrt::hstring

WebView 内のドキュメントに公開するオブジェクトの名前。

pObject
Object

Platform::Object

IInspectable

WebView 内のドキュメントに公開するオブジェクト。

この例では、 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 イベントを使用すると、ナビゲーションの開始時にオブジェクトを挿入できます。

適用対象