问题标签 [service-worker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1612 浏览

javascript - 带有 curl 的 Service Worker 数据

在 Chrome 推送通知 API 中,我想设置一个可自定义的通知。

我说的是服务人员。

这是示例服务工作者的代码。

如何从 curl 消息中捕获数据,如下所示:

我确实阅读了这个例子,但我看不到有人谈论 CURL 和 service worker 的结合。这甚至可能吗?

0 投票
1 回答
2598 浏览

javascript - 我们如何检查请求的响应是否来自 Service Worker

在 HTTP 状态代码旁边的 Google Chrome 控制台中,Request我们有 info (from ServiceWorker)

Request以某种方式知道Response来自 ServiceWorker 吗?比较date可能Response Headers

0 投票
3 回答
17566 浏览

progressive-web-apps - Chrome ServiceWorker postMessage

我尝试postMessage在 Web 应用程序和相应的服务人员之间进行切换。服务工作者已成功注册并工作至今。不幸的是,我注意到一些奇怪的行为:

  1. navigator.serviceWorker.controller总是null。_
  2. 在服务人员方面,我实现postMessage如下:

不幸的是,要回发到原点的重要字段evt.origin=''evt.source=null包含所需的值。尽管如此,我总是收到发送的evt.data.

你知道怎么回帖吗?

非常感谢!
和我

0 投票
5 回答
7230 浏览

google-chrome - navigator.serviceWorker.controller 始终为空

我的问题是,在注册 serviceWorker 后,navigator.serviceWorker.controller 始终为空。我从不强制刷新,只是刷新页面。我使用 Google Chrome 42.0.2311.152 m(32 位)对其进行了测试。

根据这个:

ServiceWorkerContainer 接口的控制器只读属性在其状态被激活时返回一个 ServiceWorker 对象(与 ServiceWorkerRegistration.active 返回的对象相同)。如果请求是强制刷新(Shift + 刷新)或没有活动的工作人员,则此属性返回 null。(来源:https ://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerContainer/controller )

navigator.serviceWorker.controller应该返回与 相同的对象serviceWorkerRegistration.active。但是.active我得到了积极的工人,.controller没有。

你对这种情况有什么想法吗?

谢谢你,安迪

0 投票
2 回答
14313 浏览

angularjs - 在 angular.js 应用程序中注册 service worker

我正在使用 ionic 和 angular.js 创建一个应用程序,但在注册一个我打算用来添加新应用程序安装横幅功能的服务人员时遇到了困难。我按照说明在我的 app.js 文件中添加了以下代码,但我注意到注册发生的任何信号也没有任何错误。

这是我添加到 app.js 中的代码:

0 投票
1 回答
14456 浏览

google-chrome - clients.openWindow() "不允许打开窗口。" 在 serviceWorker Google Chrome 上

我正在 Chrome 版本 42.0.2311.152m 下进行测试,我想实现在通知点击上打开一个窗口,如下例所示:(来源:https ://developer.mozilla.org/en-US/docs/Web/API /窗口客户端

我的文件结构是这样的:
https://myurl.no-ip.org/app/index.html
https://myurl.no-ip.org/app/manifest.json
https://myurl.no-ip.org /app/service-worker.js

我有一个问题,我总是得到一个

无效访问错误

在 service-worker.js 中调用 clients.openWindow('/') 或 clients.openWindow(' https://myurl.no-ip.org/app/index.html ') 时,我收到错误消息:

永远不会到达“return client.focus()”行,因为 client.url 永远不会只是'/'。看着

我看到了我当前的 WindowClient:

'focused' 和 'visibilityState' 属性是正确的并且可以正确更改。
通过进行手动焦点调用

我收到错误:

我认为问题在于 url 不仅仅是'/'。你对此有什么想法吗?

非常感谢!
最好的问候
安迪

0 投票
6 回答
98831 浏览

javascript - 尝试注册 serviceWorker 时出现 404 错误

尝试注册服务人员时出现此错误:

注册 ServiceWorker 失败:获取脚本时收到错误的 HTTP 响应代码 (404)。

我正在使用 ionic,这就是我在 app.js 中所拥有的:

在目录中,我在同一文件夹中的 app.js 旁边有 service-worker.js 文件。

在 ubuntu 桌面上使用最新的 chrome 版本。

0 投票
1 回答
408 浏览

.htaccess - 具有重写 URL 的离线 Web 应用程序

使用应用程序缓存,我可以轻松地使我的 Web 应用程序离线可用,并且它运行良好。我遇到的问题是我最近开始使用.htaccess文件来重写 url

http://www.example.com/?/page

http://www.example.com/page

原则上加载“主页”后,一切仍然有效(因为所有页面都是通过 Ajax 加载的),但本地书签等不起作用。有没有办法用一个简单的服务工作者添加这个功能,同时仍然依赖应用程序缓存来完成其余的离线功能(因此允许 Firefox 和 Safari 依赖应用程序缓存,而 Chrome 和 Opera 可以完美地离线工作)。

0 投票
2 回答
1264 浏览

html - 为什么服务人员只能通过 HTTPS 工作?

根据原始提案,关于“为强大的新功能首选安全来源”

“特别强大”指的是:处理个人身份信息的功能、处理凭证或支付工具等高价值信息的功能、为来源提供对 UA 的可信赖/本机 UI 的控制权、访问用户的设备,或者通常是我们将提供用户可设置权限或特权的任何功能。请讨论!

“特别强大”并不意味着:新的渲染和布局特性、CSS 选择器、无害的 JavaScript API(如 showModalDialog 等)。我预计 HTML5 中的大部分新作品都属于这一类。请讨论!

然而,出于某种原因,服务人员被归为第一类。发生这种情况是否有任何规范的原因?

0 投票
0 回答
285 浏览

service-worker - 单击推送通知后防止重定向到站点源的根目录

在 chrome 上使用 service worker 进行推送通知时,我们会向用户显示推送通知。单击通知通常会将浏览器打开到站点源的根目录。

在以下事件的回调中:

self.addEventListener('notificationclick', function(event) {})

尝试将窗口位置 url 从“/”更改为“/redirectpage”:

因此,假设在 localhost 上的预期结果应该是http://localhost:8080/redirectpage。但是单击通知仍然会将我重定向到站点源的根目录http://localhost:8080

假设这是错误的方法,我需要在哪里指定目标 url,以便浏览器在点击推送通知时打开这个目标 url?