Max*_*vis 6 javascript browser google-chrome service-worker
我遇到了一个问题,Notification.requestPermission我的处理程序不会触发ServiceWorker。
有趣的是,如果尝试从浏览器控制台使用Notification.requestPermission它,它工作正常,并且我在 Chrome 浏览器窗口顶部看到了通知请求。
经过:Notification.requestPermission().then(res => console.log(res))。但在从文件执行期间同样会引发错误ServiceWorker,例如:
未捕获的类型错误:self.Notification.requestPermission 不是函数
那么,有人可能知道出了什么问题吗?我已经在 SoW 上看到过这些帖子:
但他们并没有解决我的问题......
我push使用通知的代码的软件部分:
self.addEventListener('push', function(event) {
console.log(self.Notification, Notification.requestPermission)
self.Notification.requestPermission().then(res => console.log(res))
if (Notification.permission === 'denied') {
console.log('Permission wasn\'t granted. Allow a retry.');
return;
}
if (Notification.permission === 'default') {
console.log('The permission request was dismissed.');
return;
}
console.log('The permission request is granted!');
try {
event.waitUntil(
self.registration.showNotification(event && event.data && event.data.text() || 'Some Notification Here!')
);
} catch (e) {
throw new Error(`Error in SW: ${e}`)
}
})
Run Code Online (Sandbox Code Playgroud)
对于那些在这里寻找答案的人来说,这很简单 - 您Notification.requestPermission 只能 在阶段完成之前运行。 DOMContentLoaded
否则,由于页面资源加载已完成,浏览器将不允许您请求此权限。
| 归档时间: |
|
| 查看次数: |
6400 次 |
| 最近记录: |