WebView.ScriptNotify 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
public:
virtual event NotifyEventHandler ^ ScriptNotify;
// Register
event_token ScriptNotify(NotifyEventHandler const& handler) const;
// Revoke with event_token
void ScriptNotify(event_token const* cookie) const;
// Revoke with event_revoker
WebView::ScriptNotify_revoker ScriptNotify(auto_revoke_t, NotifyEventHandler const& handler) const;
public event NotifyEventHandler ScriptNotify;
function onScriptNotify(eventArgs) { /* Your code */ }
webView.addEventListener("scriptnotify", onScriptNotify);
webView.removeEventListener("scriptnotify", onScriptNotify);
- or -
webView.onscriptnotify = onScriptNotify;
Public Custom Event ScriptNotify As NotifyEventHandler
<WebView ScriptNotify="eventhandler"/>
事件类型
示例
下面的代码示例演示如何在为 Windows 8 编译的应用中使用 ScriptNotify 事件。 从 Windows 8.1 开始,省略与 AllowedScriptNotifyUris 相关的行。
public MyPage()
{
this.InitializeComponent();
MyWebView.ScriptNotify += MyWebView_ScriptNotify;
// Here we have to set the AllowedScriptNotifyUri property because we are
// navigating to some site where we don't own the content and we want to
// allow window.external.notify() to pass data back to the app.
List<Uri> allowedUris = new List<Uri>();
allowedUris.Add(new Uri("http://www.bing.com"));
MyWebView.AllowedScriptNotifyUris = allowedUris;
}
void MyWebView_ScriptNotify(object sender, NotifyEventArgs e)
{
// Respond to the script notification.
}
注解
当页面调用 window.external.notify 并传递字符串参数时,托管的 HTML 页面可以在 UWP 应用中触发 ScriptNotify 事件。
注意
由于此事件是由外部代码发起的,因此应注意放入事件处理程序的内容。 若要防止恶意脚本利用此事件,请务必仅为受信任的 URI 启用它,如下所述。
Windows 8.1
若要使外部网页在调用 window.external.notify 时触发 ScriptNotify 事件,必须在应用清单的 ApplicationContentUriRules 节中包含该页面的 URI。 (可以在 Visual Studio 中的 Package.appxmanifest designer. ) 此列表中的 URI 必须使用 HTTPS,并且可能包含子域通配符 (例如“https://.microsoft.com”) ,但它们不能包含域通配符 (例如“https://.com”和“https://”。) 。 该部件清单要求不适用于源自应用包的内容、使用 ms-local-stream:// URI 的内容或使用 NavigateToString 加载的内容。
注意
如果有多个子域,则必须为每个子域使用一个通配符。 例如,“https://*.microsoft.com”与“https:// any.microsoft.com”匹配,但与“https:// this”匹配。any.microsoft.com.”
这些更改不会影响为 Windows 8 编译的应用,即使在 Windows 8.1 上运行也是如此。
为Windows 8.1编译的应用不支持 AllowedScriptNotifyUris、AnyScriptNotifyUri 和 AllowedScriptNotifyUrisProperty。
Windows 8
这些备注仅适用于为 Windows 8 编译的应用,即使在 Windows 8.1 上运行也是如此。
如果使用 Navigate 方法将内容加载到 WebView 控件中,则应用必须使用 AllowedScriptNotifyUris 属性选择接收 ScriptNotify 事件,该属性包含可以触发 ScriptNotify 的 URI 列表。 如果使用 NavigateToString 加载内容,应用程序将接收 ScriptNotify 事件,而无需选择加入。 将 AllowedScriptNotifyUris 属性设置为 AnyScriptNotifyUri 属性返回的值,以指示任何页面都可以对此 WebView 控件触发 ScriptNotify 事件。