javascript - 如何正确注册一个基本的渐进式网络应用服务 worker ?

标签 javascript android service-worker progressive-web-apps

我想在我的网络应用程序上注册一个服务 worker ,我在我的页面底部添加了这个脚本:

<script>
// this part is the service worker:
     if('serviceWorker' in navigator){
        // Register service worker
        console.log('Service Worker is supported');
        navigator.serviceWorkerContainer.register('service-worker.js').then(function(reg){
        console.log("Service Worker registration succeeded. Scope is "+reg.scope);
        }).catch(function(err){
            console.error("Service Worker registration failed with error "+err);
        });
    }
</script>

并在我的服务器上的同一文件夹中创建了一个文件 service-worker.js:

console.log('Started', self);
self.addEventListener('install', function(event) {
  self.skipWaiting();
  console.log('Installed', event);
});
self.addEventListener('activate', function(event) {
console.log('Activated', event);
});
self.addEventListener('push', function(event) {
  console.log('Push message received', event);
});          

当我在 chrome 开发者应用程序上检查它时,我点击了 Service Workers,但没有任何显示。

当我运行灯塔报告时,它给我一个关于注册服务 worker 的错误。

我正在寻找一个简单的设置来为我的渐进式网络应用程序提供下载按钮,它实际上只是一个简单的网页,包含一些图像和几个 iframe。

我错过了什么?

最佳答案

以下代码将注册服务 worker 。

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/service-worker.js')
  .then(function(registration) {
    console.log('Registration successful, scope is:', registration.scope);
  })
  .catch(function(error) {
    console.log('Service worker registration failed, error:', error);
  });
}

请查看Google's Introduction to Service worker更多细节。

关于javascript - 如何正确注册一个基本的渐进式网络应用服务 worker ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44077056/

相关文章:

javascript - 在 Angular 应用程序中使用 Webworkers(服务 worker 在 angular-cli 中缓存数据访问)

javascript - 多虚拟目录站点中的服务 worker

javascript - 未捕获( promise )DOMException : Quota exceeded

c# - 如何从 HTML/Javascript 中隐藏数据库 ID

javascript - 如何使用 ExtendScript 在 After Effects 中创建文本框?

android - 'meta name="google-play-app"' 工作吗?

java - RecyclerView 中的属性动画

javascript - 如果选中所有复选框,则启用提交按钮

javascript - 在 javascript 中为所有事件类型定义回调函数

android - 如何将 raw 文件夹中的 mp3/mp4 播放到 android 中的默认播放器?