javascript - 渐进式 Web 应用程序 - 页面无法离线工作错误

标签 javascript firebase firebase-realtime-database progressive-web-apps

无论我做什么,努力消除所有外部资源,我都无法摆脱“页面无法离线工作”的错误。

这适用于使用 Firebase 实时数据库获取数据的 PWA,一旦数据库中的数据发生更改,Service Worker 就会激活。我的应用程序正在运行,因此与 Firebase 的连接不是我的问题,而是我无法安装该应用程序来解锁其功能。我什至从服务器获取了 firebase 文件并下载它以消除该外部资源。

主页加载时:

function onLoad() {
      Notification.requestPermission();
      navigator.serviceWorker.register('sw.js');
      console.log("Registered!")
        }

服务人员:

importScripts('firebase.js');
// Initialize Firebase
    var config = {Some data here};
firebase.initializeApp(config);
var database = firebase.database().ref('notification/');
database.on("child_changed", function(snapshot) {
    console.log("Activated!")
    var notificationInfo = snapshot.val();
    self.registration.showNotification(notificationInfo);
});

我希望能够通过进入菜单并单击“安装应用程序”来安装该应用程序。我在 Chrome 开发者控制台中收到错误“页面无法离线工作”。

最佳答案

仅将脚本添加到服务工作线程不会使其离线工作。 Service Worker 是一种不同类型的脚本,称为 Web Worker。它们对实际网页的访问级别与您使用 <script> 的脚本不同。标签会。 Service Worker 主要用于监听 Web 应用程序发出的请求并更改服务 Assets 所涉及的逻辑。要通过 Chrome“离线工作”审核,您需要编写一个 Service Worker 来拦截网络请求,并在请求失败时返回 HTML 文件。

您应该对 Service Worker 可以做什么做一些额外的研究:https://developers.google.com/web/ilt/pwa/introduction-to-service-worker

关于javascript - 渐进式 Web 应用程序 - 页面无法离线工作错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57565442/

相关文章:

Javascript - 如何将多个对象添加到空数组中

android - 如何在获取 token 时修复firebase云消息传递中的SERVICE_NOT_AVAILABLE错误

javascript - 保存 FCM 数据库消息的时间戳

swift - Firebase 查询找不到电子邮件地址?

javascript - react 自定义钩子(Hook) : can't get an async function

javascript - 如何通过 Ajax 调用创建可点击链接的动态列表

javascript - jQuery Click 事件代码无限重复

c# - 无法使用 Unity 在 Firebase-Analytics 中获取自定义参数

java - Firebase 实时数据库值检索

java - 如何返回 DataSnapshot 值作为方法的结果?