Nik*_*ili 6 javascript service-worker
navigator.serviceWorker.register('/service-worker.js').then((reg) => {
})
Notification.requestPermission(function(result) {
console.log('User Choice', result);
if (result !== 'granted') {
console.log('No notification permission granted!');
} else {
navigator.serviceWorker.ready
.then(function(swreg) {
console.log("blaxblux");
swreg.showNotification('Successfully subscribed!', {body:'TEST'});
});
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的代码 main.js
它涉及console.log('blaxblux'),但根本不显示通知。请求权限在浏览器显示带有允许按钮的弹出窗口时起作用。
什么事情可能是问题?
(我使用的是最新版本的 chrome)
bir*_*win 12
我遇到了类似的问题,但在我的 Windows 机器上为 Google Chrome 关闭了通知。我继续启用通知,他们神奇地开始工作。
Settings -> System -> Notifications & Actions
Run Code Online (Sandbox Code Playgroud)
向下滚动到“从这些发件人处获取通知”部分并确认“Google Chrome”(或您的首选浏览器)设置为“开启”
小智 1
用于获取权限的 API 最近从采用回调更改为返回 Promise。这样做的问题是,我们无法判断当前浏览器实现了哪个版本的 API,因此您必须同时实现并处理两者。
function askPermission() {
return new Promise(function(resolve, reject) {
const permissionResult = Notification.requestPermission(function(result) {
resolve(result);
});
if (permissionResult) {
permissionResult.then(resolve, reject);
}
})
.then(function(permissionResult) {
if (permissionResult !== 'granted') {
throw new Error('We weren\'t granted permission.');
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3411 次 |
| 最近记录: |