WebView.AddWebAllowedObject(String, Object) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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)
参数
示例
此示例演示如何使用 AllowForWeb 属性修饰类。
using Windows.Foundation.Metadata;
namespace MyRuntimeComponent
{
[AllowForWeb]
public sealed class MyNativeClass
{
public void NativeMethod()
{
...
}
...
}
}
此示例演示如何在导航开始时使用 NavigationStarting 事件注入对象。
<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());
}
}
下面介绍如何在网页的脚本中访问本机对象。
<script type='text/javascript'>
nativeObject.nativeMethod(); // Call the projected WinRT method.
</script>
注解
使用此方法将本机Windows 运行时对象公开为 WebView 内顶级文档上下文中的全局参数。 要投影Windows 运行时对象,它必须敏捷并使用 AllowForWeb 属性进行修饰。
注意
默认情况下,使用 Microsoft Visual Basic、C# 或 Visual C++ 组件扩展 (C++/CX) 创建的运行时类是敏捷的。 有关详细信息,请参阅线程处理和封送处理和使用多线程环境中的Windows 运行时对象。
传递到 AddWebAllowedObject 的对象必须从独立于应用程序集的 Windows 运行时 组件导入。 这是 AllowForWeb 属性由 WebView 安全子系统标识的属性所必需的。 如果使用应用项目中的类,则 AddWebAllowedObject 不起作用。
每次将 WebView 导航到访问本机对象的新页面时,都必须调用 AddWebAllowedObject。 可以使用 WebView.NavigationStarting 事件在导航开始时注入对象。