WebView.AddWebAllowedObject(String, Object) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.
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.