WebView.AddWebAllowedObject(String, Object) Methode

Definition

Fügt dem Dokument der obersten Ebene in einer WebView ein natives Windows-Runtime-Objekt als globalen Parameter hinzu.

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)

Parameter

name
String

Platform::String

winrt::hstring

Der Name des Objekts, das für das Dokument in der WebView verfügbar gemacht werden soll.

pObject
Object

Platform::Object

IInspectable

Das Objekt, das für das Dokument in der WebView verfügbar gemacht werden soll.

Beispiele

In diesem Beispiel wird gezeigt, wie eine Klasse mit dem AllowForWeb-Attribut dekoriert wird.

using Windows.Foundation.Metadata;

namespace MyRuntimeComponent
{
    [AllowForWeb]
    public sealed class MyNativeClass
    {
        public void NativeMethod()
        {
            ...
        }

        ...
    }
}

Dieses Beispiel veranschaulicht die Verwendung des NavigationStarting-Ereignisses zum Einfügen eines Objekts, wenn die Navigation beginnt.

<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()); 
    } 
} 

Hier erfahren Sie, wie Sie in einem Skript auf der Webseite auf das native Objekt zugreifen.

<script type='text/javascript'>
    nativeObject.nativeMethod(); // Call the projected WinRT method.
</script>

Hinweise

Verwenden Sie diese Methode, um ein natives Windows-Runtime-Objekt als globalen Parameter im Kontext des Dokuments der obersten Ebene in einer WebView verfügbar zu machen. Damit ein Windows-Runtime -Objekt projiziert werden kann, muss es agil sein und mit dem AllowForWeb-Attribut versehen sein.

Hinweis

Laufzeitklassen, die mit Microsoft Visual Basic-, C#- oder Visual C++-Komponentenerweiterungen (C++/CX) erstellt wurden, sind standardmäßig agil. Weitere Informationen finden Sie unter Threading and Marshaling und Using Windows-Runtime-Objekte in einer Multithreadumgebung.

Das an AddWebAllowedObject übergebene Objekt muss aus einer Windows-Runtime Komponente importiert werden, die von der App-Assembly getrennt ist. Dies ist erforderlich, damit das AllowForWeb-Attribut eine Eigenschaft ist, die vom WebView-Sicherheitssubsystem identifiziert wird. Wenn Sie eine Klasse aus Ihrem App-Projekt verwenden, funktioniert AddWebAllowedObject nicht.

Sie müssen AddWebAllowedObject jedes Mal aufrufen, wenn WebView zu einer neuen Seite navigiert wird, die auf das native Objekt zugreift. Sie können das WebView.NavigationStarting-Ereignis verwenden, um das Objekt einzuschleusen, wenn die Navigation beginnt.

Gilt für: