重新加载页面后 Service Worker 显示为已删除

2024-01-20

我正在使用 React 并尝试实现服务工作人员,我编写了一个用于推送通知的迷你服务工作人员文件,当用户单击按钮时正在注册服务工作人员,现在如果我发送推送消息,它会按预期工作,但是当我重新加载时页面中,虽然注册成功,但应用程序中的Service Worker却显示为已删除,请参考截图

服务人员代码

    const self = this;

    function receivePushNotification(event) {
      console.log('[Service Worker] Push Received.');
      console.log(event);

      // const { image, tag, url, title, text } = event.data.json();

      const options = {
        data: '/neworders',
        body: 'New order request',
        vibrate: [200, 100, 200],
        badge: 'https://spyna.it/icons/favicon.ico',
        actions: [
          {
            action: 'Detail',
            title: 'View',
            icon: 'https://via.placeholder.com/128/ff0000',
          },
        ],
      };
      event.waitUntil(self.registration.showNotification('Hello', options));
    }

    function openPushNotification(event) {
      console.log(
        '[Service Worker] Notification click Received.',
        event.notification.data
      );

      event.notification.close();
      event.waitUntil(clients.openWindow(event.notification.data));
    }

    self.addEventListener('install', function (event) {
      console.log({ event });
      // The promise that skipWaiting() returns can be safely ignored.
      self.skipWaiting();

      // Perform any other actions required for your
      // service worker to install, potentially inside
      // of event.waitUntil();
    });

    self.addEventListener('activate', (event) => {
      console.log('V1 now ready to handle fetches!');
    });
    self.addEventListener('push', receivePushNotification);
    self.addEventListener('notificationclick', openPushNotification);

注册 Service Worker 函数

function registerServiceWorker() {
  return navigator.serviceWorker.register('/newsw.js');
}

服务人员删除截图


我怀疑发生这种情况是因为您打开了“重新加载更新”。

这会强制 Service Worker 在您重新加载页面时进行更新。 (阅读更多here https://developers.google.com/web/ilt/pwa/tools-for-pwa-developers#force_update_the_service_worker)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重新加载页面后 Service Worker 显示为已删除 的相关文章

  • 通过pm2运行node.js,但经常重新启动:通过信号[SIGINT]以代码[0]退出

    我试图在我的系统上运行 node js 但遇到了这个问题 2016 06 01 20 46 28 App app with id 13 and pid 12633 exited with code 0 via signal SIGINT 2
  • 限制可选 DOM 复选框

    我试图限制用户可以选择的复选框数量 这些复选框是为数组中的每个项目生成的 DOM 输入对象 我目前对此没有运气 因此非常感谢任何帮助 谢谢 在这里小提琴 http jsfiddle net vVxM2 222 http jsfiddle n
  • Android GCM 服务器的 API 密钥

    我有点困惑我应该为 GCM 服务器使用哪个 API 密钥 在文档中它说使用 android api 密钥 这对我不起作用并且总是给出未经授权的 http developer android com google gcm gs html ht
  • Chrome 扩展同步调用 - 仅在窗口关闭后创建窗口

    我有这个代码 function voteNewWindow mailNum chrome windows create url http www google com incognito true function window conso
  • 启用/禁用由用户输入确定的复选框

    我有一个简单的表单 用户可以在其中输入他的联系号码 如果联系号码以 07 开头 则该复选框已启用 其他我需要禁用它的复选框 我已经编写了一些代码 但我面临的问题是 当用户键入 01 时 它会被禁用 但如果他们继续在 01 之后添加任何其他数
  • 将文本大小调整为矩形 在 Canvas HTML5 中调整大小

    我是 Canvas 新手 我正在创建一个网站 以在调整矩形大小时增加文本 我尝试了很多 但没有任何效果 实际上 我希望如果我仅按其宽度调整矩形大小 向左拉伸 向右拉伸 则仅应增加文本宽度而不是字体大小 我已经完成了字体大小 但发现增加孤立文
  • 应用程序打开时处理推送通知

    我正在运行推送通知 有用 我收到通知并使用 application didReceiveRemoteNotification 获取传入数据 然后将用户发送到必要的屏幕 问题是 如果您正在使用该应用程序并收到通知 它会跳转到目标屏幕 而不会发
  • 如何在 HTML / Javascript 页面中插入 PHP 下拉列表

    好吧 这是我的第二篇文章 请接受我是一个完全的新手 愿意学习 花了很多时间在各个网站上寻找答案 而且我几乎已经到达了我需要到达的地方 至少在这一点上 我有一个网页 其中有许多 javascript 函数 这些函数一起使用 google 地图
  • 通过JS Laravel访问存储目录

    有没有办法访问storage目录 该目录已经链接到publicJS 中的目录 我正在尝试制作一个上传图片的表单 验证脚本 if request gt hasFile photos marker gt photos request gt ph
  • 循环遍历元素并逐步为每个元素应用 CSS 规则

    我有一个网格布局 每个网格布局中都有不同数量的元素 我想动态添加内联grid column通过循环遍历 div 中存在的每个元素的 CSS 规则 ul 与一类 list 所以 HTML 代码的输出需要是 ul class list ul u
  • 在 jQuery 可排序中对多个选定项目进行排序?

    我试图在 jQuery 可排序集中选择多个项目 然后将选定的项目一起移动 这是我的弱点开始尝试使其发挥作用 http jsfiddle net benstenson CgD8Y 这是代码 HTML div class container d
  • console.log() 显示同一对象属性的矛盾值

    我想我可能要疯了 我使用 console log 来查看对象的状态 然后在下一行对同一对象的特定属性执行 console log 并为每个属性获取不同的值 我正在使用的代码是 console log this pictures Items
  • ToggleClass 动画 jQuery?

    我的网站上有一个部分 当用户单击时我希望它展开 我正在使用 jQuerytoggleClass为了这 expandable function e e preventDefault this closest article toggleCla
  • 计算文本选择的 xy 位置

    我正在尝试使用 DOM 元素创建自己的文本选择 是的 我的意思是当您在此元素中选择文本时 您会在文本后面看到蓝色背景 这个想法是停止默认行为 蓝色 并使用我自己的元素来完成工作 方法是找到选择的 xy 位置 然后放置绝对定位的元素 我希望能
  • 禁用特定 div 上的 Tab 键

    我有以下结构 div div Some content div div Some content div div 我想 禁用 div2 上的 tab 键 我的意思是按下 tab 键时 div2 的元素不会获得焦点 有没有简单的方法可以使用
  • Knockout.js 安全绑定

    我想使用带有淘汰赛的安全绑定 为此我使用敲除安全绑定 js https github com brianmhunt knockout secure binding 谁能解释一下为什么下面的代码不起作用 它会抛出一个错误 未捕获 淘汰 安全
  • Firebase 警告:使用 Firebase Cloud Function 搜索数据时使用未指定的索引

    我构建了一个 Firebase 云函数 用于查找 IsNotificationEnabled 值等于 true 的用户 我的部分职能 export const sendPushNotification functions https onR
  • Node.js - 重载函数

    有没有一种方法可以重载node js中的函数 类似于 noSuchMethod https developer mozilla org en JavaScript Reference Global Objects Object noSuch
  • Node npm 包抛出使用严格:全局发布和安装后未找到命令

    我正在尝试发布 npm 包 当我全局安装该包并尝试运行 cli 命令时 我收到此错误 nvm versions node v0 12 2 bin myPack line 1 use strict command not found nvm
  • 无法使用 HTML 设置未定义 jQuery UI 自动完成的属性“_renderItem”

    我使用以下代码将 jQuery UI 自动完成项呈现为 HTML 这些项目在自动完成控件中正确呈现 但我不断收到此 JavaScript 错误并且无法移动过去 Firefox 无法转换 JavaScript 参数 Chrome 无法设置未定

随机推荐

  • Levenshtein 距离算法比 O(n*m) 更好?

    我一直在寻找一种先进的编辑距离算法 并且迄今为止我发现的最好的 http www levenshtein net 是 O n m 其中 n 和 m 是两个字符串的长度 该算法之所以达到如此规模 是因为空间而不是时间 因为创建了两个字符串的矩
  • 如何使用 CSS 居中和裁剪图像以使其始终显示为正方形?

    我需要始终仅使用 CSS 将随机大小的图像裁剪为 160x160 的正方形 裁剪时图像应保持居中 我的标记应该是 a href class cropper img src image alt description a 在 StackOve
  • 告诉我如何在没有javascript的情况下进行半液体布局,我觉得我错过了一些简单的东西

    好的 首先我将支持 IE7 所以盒子大小已经过时了 我有一个固定大小的页眉和页脚 例如每个 80 像素 分别位于窗口的顶部和底部 我想要一个 div 占据其之间的所有空间 无论窗口大小如何 使用 JavaScript 很轻松 但是有没有办法
  • 正则表达式允许 A-Z、- 和 '

    我试图让这个正则表达式起作用来验证名称字段仅允许 A Z 和 到目前为止 我正在使用它 除了不允许使用撇号之外 它工作得很好 if preg match a zA Z firstname do something 我希望它只允许 A Z 破
  • 在 python 中重新打开声音文件时出错

    我正在制作一个程序 它可以简单地重复您输入的任何文本 并且在我第一次测试它时似乎可以正常工作 问题是 当我第二次尝试输入任何内容时 它崩溃并说我录制的声音文件的权限被拒绝 我相信这是因为文件已经打开 但我仍然不知道如何修复它 我正在使用 g
  • PageSpeed 和 CDN 图像

    我目前有一个网站 通过 AWS Cloudfront 为位于 AWS S3 上的图像提供服务 我不想安装 PageSpeed 而是想利用 PageSpeed 提供的图像优化和延迟加载 页面视图之外 我的问题是 我是否需要使用 PageSpe
  • 如何用 Java 解析 1 或 2 位数的小时字符串?

    我的解析器可能会遇到 2 37PM 由 H mma 解析 或 02 37PM 由 hh mma 解析 如何在不使用 try catch 的情况下解析两者 当我出错时 我会收到这样的错误 发现冲突 AmPmOfDay 0 字段与派生的 AmP
  • 尝试在 .Net Core 应用程序中使用 Thread_UseAllCpuGroups

    我正在尝试在我的 Net Core 应用程序中使用 Thread UseAllCpuGroups 将框架与 Web Config 中的设置结合使用时 我在 3990x 处理器上使用所有 128 个 CPU 时没有任何问题 但在将其转移到 N
  • 当 --coverage-html 时 Phpunit 非常慢

    我正在使用 Phpunit 如果我只是运行我的测试 phpunit log junit 输出 xml 这在一秒钟内运行 但如果我想要代码覆盖率 phpunit coverage html report log junit 输出 xml 那么
  • Jupyter 笔记本中 shell 命令的实时输出

    我告诉 jupyter 执行一个 python 脚本 python build database py 从终端执行时 Python 脚本会打印执行过程中的进度 但是 在 jupyter 笔记本中 执行后我将所有输出打印为字符串列表 有没有办
  • Linux 脚本从 Excel 中提取信息来创建用户 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 现在我被这个项目困住了 必须从 Ex
  • AVPlayer 直播时的问题 (iOS)

    我有 AVPlayer 问题 1 如何控制音量 2 如何知道AVPlayer是否因为连接不良而重新加载音乐 我有一些指示吗 AVPlayer使用系统音量 因此如果您需要为此提供控件 您可以使用MPVolumeView这为您提供了音量控制滑块
  • 在 php 中制作 mysql 单例数据库类有更简单/更好的方法吗?

    这是我正在使用的
  • 在android中如何在gridview中引入网格线

    经过大量搜索后 我能够找到我的问题的解决方案 在 Android 中如何 我可以使网格线在我的 gridview 中可见吗 因为它看起来很简单 但我仍然无法解决 这个问题确实提出了一些有用的建议 使网格线或边框在 网格视图 GridView
  • PHPExcel:如何在首页页眉中插入图像并将其放大以适合其内容?

    我有一个用 PHPExcel 制作的 Excel 文件 其标题带有左对齐徽标和右对齐日期和用户文本 对于第一页 我想要一个类似的标题 相同的徽标和相同的日期和用户文本 但添加一些附加信息 文件的标题和参数在几行后居中 这就是我到目前为止正在
  • Web应用程序Kerberos身份验证:与cookie结合的正确方法是什么?

    场景 一个位于防火墙后面的企业 Python Web 应用程序 应使用 Kerberos 来验证用户身份 我有工作代码 可以从服务器发送正确的响应 Negotiateheader 等 并获取访问该应用程序的用户的 Windows 用户名 使
  • Maven 发现已完成,未找到任何扩展

    我已经在我的系统上安装了 eclipse 4 3 并且最近安装了 Maven 集成插件 我收到以下错误 发现已完成 但未找到任何扩展 请检查您的网络连接并重试 目录网址是http download eclipse org technolog
  • 如何在不改变文本大小的情况下为每个字母设置动画

    我试图让每个字母在悬停时变大 我得到了那个动画 但我想去掉整个句子来移动 我尝试使用绝对定位 它不起作用 Here is jsfiddle http jsfiddle net 6d391kkd HTML div h1 span S span
  • 无法在按钮单击时立即中断 while 循环 c# mvc

    我有 mvc 操作方法 其中 while 循环正在运行 我想在单击另一个按钮时停止 while 循环 因此我维护了一个标志并将其设置为 false 以中断循环 bool flag true public async Demo while f
  • 重新加载页面后 Service Worker 显示为已删除

    我正在使用 React 并尝试实现服务工作人员 我编写了一个用于推送通知的迷你服务工作人员文件 当用户单击按钮时正在注册服务工作人员 现在如果我发送推送消息 它会按预期工作 但是当我重新加载时页面中 虽然注册成功 但应用程序中的Servic