如何在 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);
}
然后使用 InvokeScriptAsync
I 运行 以下 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,让用户选择是否接受通知。
此致。
所以我在我的 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);
}
然后使用 InvokeScriptAsync
I 运行 以下 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,让用户选择是否接受通知。
此致。