2

我需要在 chrome 原生弹出窗口出现时更改站点上的文本消息,以允许从站点获取基于 chrome 的 GCM 推送通知。见截图。在此处输入图像描述

据我所知,本地弹出窗口仅在启用网站通知时第一次出现。但是如果假设有人第一次允许然后从站点禁用然后再次尝试启用它不会出现。

所以我只需要添加一个签入代码就知道只有在弹出窗口出现时才有效。在这行代码上订阅 chrome GCM 通知时会出现此原生弹出窗口:

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

提前致谢。

4

1 回答 1

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

于 2016-05-16T13:41:14.260 回答