问题标签 [web-push]

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 回答
95 浏览

javascript - 如何在服务人员中识别正确的持久数据?

我在 chrome 中有一个服务人员,当用户朋友上线时会显示推送通知。我希望使用 IndexedDB 来保存有关用户朋友的数据,例如朋友个人资料页面的姓名和 URL。

我的问题是一个用户有很多朋友,Chrome 不支持额外数据。

我如何知道 service Worker 里面有什么朋友刚刚上线?我知道我可以通过 fetch 找到最新的登录名并以这种方式猜测,但更愿意避免不必要的 ajax 调用和 SQL 查询。

0 投票
1 回答
1212 浏览

firefox - 在 Firefox 上导致 CORS 问题的 Service Worker

按照这篇文章,我正在使用服务工作者进行推送通知。一切都适用于 Chrome,但使用 Firefox (v.44.0.2) 我有一个奇怪的问题。成功登录我的应用程序后,我注册了只等待推送事件的服务工作者;我看到它已正确注册(来自一些日志记录和about:serviceworkers)。现在,如果我刷新页面 (CTRL+R),我的所有 POST 都会由于这个服务工作者而出现 CORS 问题(缺少Access-Control-Allow-Origin标头),并且用户被重定向到登录页面;出于同样的原因,从这里开始,所有 POST 都不起作用。相反,如果我登录,请取消注册服务人员并然后刷新,完全没有问题。知道发生了什么吗?同样,我的服务人员只处理推送事件,没有缓存没有其他处理完成,它在 Chrome 上完美运行。

这是我的服务工作者代码( SOME_API_URL 指向一个真实的 API,它不需要用于测试目的,因为问题发生在服务工作者注册后,不需要推送事件)

0 投票
7 回答
2300 浏览

javascript - PushManager 订阅承诺从不履行也不拒绝

我目前面临一些 Chrome (Chromium) 版本的问题,其中PushManager.subscribe来自 ServiceWorker 的承诺保持在挂起状态

代码本身非常简单:

我有一个有效且可访问的 JSON清单,提供GCM 发件人 ID。如本文所述,我还尝试了不同的实现,但结果仍然相同。

订阅部分适用于每个47+版本,问题出现在旧版本中。(我正在使用 Chromium 连续构建来测试不同的主要版本)。

另请注意,在 Ubuntu 上使用 Chromium 46(及更低版本)时,承诺会15 分钟后以Internal Server Error.

0 投票
1 回答
256 浏览

web-push - 如果我的网站是前台且集中的,我是否需要显示通知以响应推送通知?

我正在构建一个使用 Web 推送通知的渐进式 Web 应用程序,并希望避免向当前正在查看我的网站的桌面或移动设备上的用户显示通知。

我知道在处理推送事件时我的网站必须始终显示通知,但是如果我的网站已打开,我可以跳过显示通知吗?

在决定是否显示通知时也可以确定上述内容吗?

0 投票
1 回答
76 浏览

web-push - 如果我的网站被聚焦并被带到前台,我如何隐藏我的网站正在显示的通知?

背景:我正在构建一个渐进式 Web 应用程序,向我的用户发送带有 service worker 的推送通知。

有没有办法确保如果用户在通知当前显示通知被隐藏时浏览我的网站?

我想避免他们导航到我的网站并且通知仍在显示,现在已经过时的情况。

0 投票
1 回答
1272 浏览

web-push - OneSignal website push flow

I'm implementing OneSignal website push notification for my website. For now I just want to enable push notifications for the registered users. I had expected that there would be some callback methods after the users clicks "Allow" or "Block", but there aren't any. I see that I have to work with OneSignal.isPushNotificationsEnabled() and OneSignal.push(["getIdsAvailablegetIdsAvailable",..]), but I'm not sure how everything is supposed to come together.

What I think I should do is every time a registered users is at the homepage to execute something like this:

One thing that bothers me is that if this code gets executed and the user clicks "Allow" it will not trigger any code and a notification will never get to my server that the user has actually allowed push notifications. I'll have to wait for the user to come back or refresh the page. Is this how it's supposed to work or am I missing something?

0 投票
1 回答
1418 浏览

firefox - Firefox 网络推送“无效的 URL 端点”

我尝试将 webpush 发送到 firefox

这是否意味着我的数据库中存储了无效的注册 ID,我应该将其删除?

0 投票
4 回答
17208 浏览

javascript - DOMException: 注册失败 - 权限被拒绝

我有一个运行良好的网络通知脚本。但是,当我在 chrome 版本 43 中进行测试时,我收到错误“DOMException:注册失败 - 权限被拒绝”。此错误发生在订阅阶段。

这是通常的注册过程的代码片段

在上面的代码中,错误发生在我执行的步骤中reg.pushManager.subscribe()

  • 这在 chrome 49 中不会发生。
  • 这个错误总是出现在 chrome 版本 43 上。

[注意] 我认为这是 chrome 版本 43 的一般问题,但是当我检查 goroost.com 和 pushcrew 等网站时,它们似乎工作正常。只有我的不工作

0 投票
1 回答
364 浏览

google-chrome - 如何一次向多个 Firefox 设备发送通知

任何人都知道如何在一个 POST 调用中将通知发送到多个 Firefox 设备。

0 投票
1 回答
1324 浏览

javascript - 服务人员注册未返回

我有一个 apache 服务器正在运行。这样的后端由 django 支持,但放置在 apache 服务器上。我有一个服务人员,否则它工作得很好。这是进行注册的代码

但是上面的代码不知何故从未给出任何响应。承诺仍处于待处理状态。即使在最后添加一个 catch 也不会产生任何错误。它转到 navigator.serviceworker.ready 但不解析为 then 函数。我不确定是什么问题。

我试过以下东西:

  • 我虽然问题可能是服务工作者需要在同一个来源,所以我添加了名为 Service-Worker-Allowed:/static 的标题,但这并没有完成这项工作。

  • 当我通过直接转到路径访问文件时,在添加Service-Worker-Allowed:/static 后保存了 html(例如:mywebsite/static/serviceworker.html):/static 它工作正常。但是当我使用 django 映射的 url(即我通过 urls.py 映射的 url,例如: mywebsite/admin/worker )访问同一个 html 文件时,它似乎不起作用。

  • 试图给出相对路径,但相对路径在我的情况下不起作用。

  • 我把它放在另一个 apache 服务器上,它似乎工作正常。

我没有任何想法。这是一些django问题吗?