基于Chrome的GCM推送通知本机弹出检测

时间:2016-05-13 12:55:41

标签: google-cloud-messaging web-push chrome-gcm

我需要在网站上更改短信,而Chrome原生弹出窗口允许从网站获取基于Chrome的GCM推送通知。看截图。 enter image description here

我知道原生弹出窗口仅在第一次启用时为网站启用通知。但是如果假设某人允许第一次然后从网站禁用然后再次尝试启用它将不会出现。

所以我只需要添加一个检查代码,以便知道只有在弹出窗口出现时才能工作。在这行代码上订阅chrome GCM通知时会出现这个本机弹出窗口:

navigator.serviceWorker.ready.then(function(serviceWorkerRegistration) {  
            serviceWorkerRegistration.pushManager.subscribe({userVisibleOnly: true}).then(function(subscription) { 

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以使用Permissions API并查询状态"提示"

特别是你可以这样做:

navigator.permissions.query({name:'notifications'}).then(function(result) {
 if (result.status == 'prompt') {
    // At this point you know that once you call pushManager.subscribe the
    // Dialog will be shown.
 }
});

Permissions API的MDN页面有更多详细信息 https://developer.mozilla.org/en-US/docs/Web/API/Permissions/query