Compartilhar via


WebView.AddWebAllowedObject(String, Object) Método

Definição

Adiciona um objeto Windows Runtime nativo como um parâmetro global ao documento de nível superior dentro de um 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

O nome do objeto a ser exposto ao documento no WebView.

pObject
Object

Platform::Object

IInspectable

O objeto a ser exposto ao documento no WebView.

Exemplos

Este exemplo mostra como decorar uma classe com o atributo AllowForWeb .

using Windows.Foundation.Metadata;

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

        ...
    }
}

Este exemplo demonstra o uso do evento NavigationStarting para injetar um objeto quando a navegação começa.

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

Veja como acessar o objeto nativo em um script na página da Web.

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

Comentários

Use esse método para expor um objeto Windows Runtime nativo como um parâmetro global no contexto do documento de nível superior dentro de um WebView. Para que um objeto Windows Runtime seja projetado, ele deve ser ágil e decorado com o atributo AllowForWeb.

Observação

As classes de runtime criadas usando as extensões de componente do Microsoft Visual Basic, C# ou Visual C++ (C++/CX) são ágeis por padrão. Para obter mais informações, consulte Threading e Marshaling e Using Windows Runtime objetos em um ambiente multithreaded.

O objeto passado para AddWebAllowedObject deve ser importado de um componente Windows Runtime separado do assembly do aplicativo. Isso é necessário para que o atributo AllowForWeb seja a propriedade identificada pelo subsistema de segurança WebView . Se você usar uma classe do seu projeto de aplicativo, AddWebAllowedObject não funcionará.

Você deve chamar AddWebAllowedObject sempre que o WebView for navegado para uma nova página que acesse o objeto nativo. Você pode usar o evento WebView.NavigationStarting para injetar o objeto quando a navegação começar.

Aplica-se a