如何在 UWP 应用程序的 XAML Webview 中添加对 HTML5 通知的支持?

How to add support for HTML5 notifications in XAML Webview in a UWP app?

所以我在我的 UWP 应用程序中使用 WebView,我想处理 HTML5 notifications. What I did was to add support for the ScriptNotify event to my webview (here)。

 MyWebView.ScriptNotify += WebView_Notify;
 private void WebView_Notify(object sender, NotifyEventArgs e)
 {
    Debug.WriteLine("NOTIFIED " + e.Value);
 }

然后使用 InvokeScriptAsyncI 运行 以下 javascript 代码:

(function() {
    var N = window.Notification;

    window.external.notify(N.permission);
    var P = function (title, options){
        window.external.notify(title)
    };
    P.permission = 'granted';
    N = P
})();

但是,这不起作用。在我的调试输出中,我确实得到:

"NOTIFIED default`

这意味着正在触发 ScriptNotify 处理程序。但是,如何在我的应用程序中实现 HTML5 通知支持?

我找到了一个可能对您有帮助的新解决方案。

页面加载时发起通知请求,WebView可以拦截,使用事件PermissionRequested.

private void WebView_PermissionRequested(WebView sender, WebViewPermissionRequestedEventArgs args)
{
    if (args.PermissionRequest.PermissionType == WebViewPermissionType.WebNotifications)
    {
        args.PermissionRequest.Allow();
    }
}

也可以在监听请求的时候弹出一个window,让用户选择是否接受通知。

此致。