首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Javascript Service Worker -如何在浏览器关闭时触发事件

Javascript Service Worker -如何在浏览器关闭时触发事件
EN

Stack Overflow用户
提问于 2017-06-29 02:55:51
回答 1查看 1.5K关注 0票数 2

我目前正在尝试使用Service Workers,特别是chrome中的推送通知。问题是我不知道如何开始它。

下面:在我的index.html中,我首先请求通知权限。如果权限被授予,我将注册我的服务工作者。当服务工作者准备就绪时,我将使用promise获取resolve函数,并将注册作为第一个参数。然后,我将显示通知

代码如下:

代码语言:javascript
运行
复制
<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文件。是否可以在该文件上设置事件,并在文件更改时触发事件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-30 15:14:20

要开始使用服务工作者,您需要在索引html中对其进行初始化。像这样的东西

代码语言:javascript
运行
复制
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事件

代码语言:javascript
运行
复制
self.addEventListener('push', ()=>{
    // listen to push notifications here
});

出于测试目的,您可以使用chrome dev工具。

您可以点击上图中的推送链接,模拟推送通知。但是,要在浏览器关闭时测试案例,您需要设置一个有效的推送通知系统,以便在浏览器关闭时将通知发送给服务工作者。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44810480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档