Compartir a través de


WebView.AddWebAllowedObject(String, Object) Método

Definición

Agrega un objeto de Windows Runtime nativo como parámetro global al documento de nivel superior dentro de un objeto 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)

Parámetros

name
String

Platform::String

winrt::hstring

Nombre del objeto que se va a exponer al documento en WebView.

pObject
Object

Platform::Object

IInspectable

Objeto que se va a exponer al documento en WebView.

Ejemplos

En este ejemplo se muestra cómo decorar una clase con el atributo AllowForWeb .

using Windows.Foundation.Metadata;

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

        ...
    }
}

En este ejemplo se muestra el uso del evento NavigationStarting para insertar un objeto cuando comienza la navegación.

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

Aquí se muestra cómo acceder al objeto nativo en un script de la página web.

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

Comentarios

Utilice este método para exponer un objeto de Windows Runtime nativo como parámetro global en el contexto del documento de nivel superior dentro de un objeto WebView. Para que se proyecta un objeto de Windows Runtime, debe ser ágil y estar decorado con el atributo AllowForWeb.

Nota

Las clases en tiempo de ejecución creadas con las extensiones de componentes de Microsoft Visual Basic, C# o Visual C++ (C++/CX) son ágiles de forma predeterminada. Para obtener más información, consulta Subprocesos y serialización y Uso de objetos Windows Runtime en un entorno multiproceso.

El objeto pasado a AddWebAllowedObject debe importarse desde un componente de Windows Runtime que sea independiente del ensamblado de la aplicación. Esto es necesario para que el subsistema de seguridad WebView identifique el atributo AllowForWeb. Si usa una clase del proyecto de aplicación, AddWebAllowedObject no funciona.

Debe llamar a AddWebAllowedObject cada vez que WebView se navegue a una página nueva que tenga acceso al objeto nativo. Puede usar el evento WebView.NavigationStarting para insertar el objeto cuando comienza la navegación.

Se aplica a