WebView.AddWebAllowedObject(String, Object) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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.