Condividi tramite


WebView.AddWebAllowedObject(String, Object) Metodo

Definizione

Aggiunge un oggetto Windows Runtime nativo come parametro globale al documento di primo livello all'interno di un controllo 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)

Parametri

name
String

Platform::String

winrt::hstring

Nome dell'oggetto da esporre al documento in WebView.

pObject
Object

Platform::Object

IInspectable

Oggetto da esporre al documento in WebView.

Esempio

In questo esempio viene illustrato come decorare una classe con l'attributo AllowForWeb .

using Windows.Foundation.Metadata;

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

        ...
    }
}

In questo esempio viene illustrato l'utilizzo dell'evento NavigationStarting per inserire un oggetto all'inizio della navigazione.

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

Ecco come accedere all'oggetto nativo in uno script nella pagina Web.

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

Commenti

Utilizzare questo metodo per esporre un oggetto Windows Runtime nativo come parametro globale nel contesto del documento di primo livello all'interno di un controllo WebView. Affinché un oggetto Windows Runtime venga proiettato, deve essere agile e decorato con l'attributo AllowForWeb.

Nota

Per impostazione predefinita, le classi di runtime create con le estensioni del componente Microsoft Visual Basic, C# o Visual C++ (C++/CX) sono agile. Per altre informazioni, vedi Threading e marshalling e Uso di oggetti Windows Runtime in un ambiente multithreading.

L'oggetto passato in AddWebAllowedObject deve essere importato da un componente Windows Runtime separato dall'assembly dell'app. Ciò è necessario affinché l'attributo AllowForWeb sia identificato dalla proprietà del sottosistema di sicurezza WebView . Se usi una classe dal progetto dell'app, AddWebAllowedObject non funziona.

È necessario chiamare AddWebAllowedObject ogni volta che WebView viene spostato su una nuova pagina che accede all'oggetto nativo. È possibile utilizzare l'evento WebView.NavigationStarting per inserire l'oggetto all'inizio della navigazione.

Si applica a