我目前正在尝试使用Service Workers,特别是chrome中的推送通知。问题是我不知道如何开始它。
下面:在我的index.html中,我首先请求通知权限。如果权限被授予,我将注册我的服务工作者。当服务工作者准备就绪时,我将使用promise获取resolve函数,并将注册作为第一个参数。然后,我将显示通知
代码如下:
<script>
navigator.serviceWorker.register('sw.js');
Notification.requestPermission(function(result) {
if (result === 'granted') {
navigator.serviceWorker.ready.then(function(registration) {
registration.showNotification('Notification with ServiceWorker', {
"body": "Test",
"vibrate": [200, 100, 200, 100, 200, 100, 400]
});
});
}
});
</script>
现在我不知道如何启动sw.js
当我注册一个事件时,我需要一些东西来激发我的事件。当我关闭浏览器时,我无法触发事件。
对于我的问题:我有一个JSON文件。是否可以在该文件上设置事件,并在文件更改时触发事件?
发布于 2017-06-30 15:14:20
要开始使用服务工作者,您需要在索引html中对其进行初始化。像这样的东西
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('service-worker.js', {scope: './'}).then((registration) => {
console.log('sw registered');
}).catch(function(error) {
console.log('registration failed');
});
}
这会将service-worker.js
注册为您的服务工作者。更多细节here。
接下来,您必须侦听类似于以下内容的push
事件
self.addEventListener('push', ()=>{
// listen to push notifications here
});
出于测试目的,您可以使用chrome dev工具。
您可以点击上图中的推送链接,模拟推送通知。但是,要在浏览器关闭时测试案例,您需要设置一个有效的推送通知系统,以便在浏览器关闭时将通知发送给服务工作者。
https://stackoverflow.com/questions/44810480
复制相似问题