问题标签 [push-api]

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 投票
0 回答
101 浏览

javascript - Web Push API - 服务工作者通知

我需要在窗口客户端隐藏时显示 SW 通知,并且在窗口客户端可见性状态可见时不应该显示通知。

我试过下面的代码。但 SW 显示默认通知。

本站已在后台更新

谁能帮帮我。

0 投票
1 回答
169 浏览

firefox - 推送 API - 无法在 Firefox 55 中接收测试推送通知

我遵循了 Google 的代码实验室“向 Web 应用程序添加推送通知”(https://developers.google.com/web/fundamentals/codelabs/push-notifications/) - 它适用于 Chrome。

但是在 Firefox 55 中,当我在 about:debugging#workers 中按下“测试推送通知”按钮时,没有显示通知,尽管在控制台“[Service Worker] Push Received”中。被输出。

不知道先在哪里调查...有人可以帮忙吗?

0 投票
1 回答
1167 浏览

promise - pushManager 的 .subscribe() 方法存在问题

我正在关注这个非常清晰的教程

一切正常,除了当我到达使用 pushManager 订阅用户的阶段时,当我打电话时,pushManager.subscribe()我没有从状态为pending.

也许我的设置遗漏了一些明显的问题,如下所示:

是否应该在其他地方进行额外的配置?任何建议表示赞赏。

0 投票
0 回答
58 浏览

push-notification - 推送服务器有哪些选项可以向服务人员发送通知

我正在构建一个具有服务工作者的网络应用程序,它在发送消息时显示通知。我一直在使用 Web Push API 示例 ( https://web-push-codelab.glitch.me/ ) 作为后端。但我不清楚通知是如何发送给服务人员的。我是否需要创建一个推送通知的后端服务,并且作为服务工作者注册的一部分,我必须订阅后端服务器提供的端点。我还需要发送通知的第 3 方服务吗?我的后端服务与之对话?我知道如何设置服务工作者,但不知道如何创建推送管理器订阅的服务。

0 投票
0 回答
1331 浏览

web-push - 如何检查推送端点是否仍然有效?

我已经成功地为我的网站实现了 HTML5 推送通知,用于新闻更新和用户事件。如果端点不再有效(无论出于何种原因,但通常是因为用户在其浏览器中撤销了权限),当我尝试发送通知时,我会从推送服务器获得 404 或 410 状态。然后我从我的记录中删除那个端点。

但我想要更主动一点,检查端点是否有效,这样我订阅用户的统计数据就更真实了,并且只有在通知发送失败时才更新(可能需要几天或几周)。

我想过发送一个无效的推送消息(例如使用错误的 VAPID 密钥),但我不能保证服务器会在有效负载的有效性之前检查端点的有效性,所以即使这有效,它也可能会中断在任何时候。

有没有更优雅的方法可以做到这一点?

0 投票
0 回答
462 浏览

google-chrome-extension - 如何从 localhost 向 Chrome 扩展程序发送消息?

Chrome 应用程序消失了,所以没有chrome.sockets.tcpServerchrome.gcm不见了,而且 Firebase 对我的兴趣来说太重了(不是我曾经使用过的chrome.gcm)。我只想从本地主机发送消息;我不想注册任何东西或维护应用服务器。我用 Service Workers 尝试了Push API,但遇到了问题。

什么有效:

  • 我可以注册一个服务人员。注册最终进入激活状态。

什么不起作用:

  • navigator.serviceWorker.ready承诺永远不会解决。
  • Notification.requestPermission什么都不做(但Notification.permission === 'granted'如果我将通知权限添加到扩展清单)。
  • registration.pushManager.subscribe承诺永远不会解决。
  • registration.pushManager.permissionState解析为'prompt',但从未出现任何提示。

这些行为都不符合我链接的文档。我怎么解决这个问题?

0 投票
1 回答
799 浏览

push-notification - 真的有必要在每次页面加载时更新订阅吗?

我目前正在开发一个允许用户订阅推送通知的网络应用程序。我们将订阅存储在映射到用户 ID 的数据库表中,当需要发送通知时,我们将查找用户的订阅并发送通知。

我一直在关注本指南: https ://developers.google.com/web/fundamentals/codelabs/push-notifications/

一切进展顺利,但有些事情感觉不太“正确”。

在每次页面加载时,服务工作者都会被注册,然后它会检查它们是否已经被订阅,即使它们是updateSubscriptionOnServer()包含以下注释的调用:

这实际上意味着每个页面加载都将尝试将相同的订阅写回数据库。显然我们将在应用程序中处理它,但这似乎并不理想。

使用 Web Push API,这是预期的方法吗?

非常感谢

0 投票
1 回答
960 浏览

push-notification - Web Push API - 向多个收件人发送通知

使用 W3C Web Push API 是否可以批量发送推送通知,以便多个用户接收?当为用户代理订阅通知时,我们会获得一个唯一的端点,例如:

因此,如果我想向 1000 个用户发送相同的推送,是否意味着我需要向推送服务发出 1000 个 HTTP 发布请求?

0 投票
0 回答
112 浏览

wcf - WCF 服务回调与用于 Web 通知的 Web 推送 API 集成

即使未打开浏览器,我的 Web 应用程序也需要通知(来自 WCF 服务回调)。

我将从网络中托管的 WCF 服务的 WCF 服务回调中获得通知源/事件。

我遇到了 Web Push API 和 Service Workers 概念,它们给了我预期的行为(甚至在浏览器关闭时通知)。

Push API 可以将通知发送给 service worker,然后它可以处理。即使没有为通知打开浏览器,也只有 service worker 可以被激活。

我怀疑我是否可以为服务回调托管 WCF 服务,即使与服务工作者相比,浏览器已关闭。

如何实现这个场景?我在我的 web 应用程序中的 WCF 服务回调中获得的通知 -> 传递给推送 api -> 服务工作者 -> 通知显示。

0 投票
2 回答
307 浏览

push-notification - Service Worker 中的推送支持是否依赖于 Internet 和第三方 Google/Apple 服务?

Service Worker 中的推送支持是否依赖于 Firebase(以及 Apple 的同等产品)?我发现的所有教程都有一个注册 Firebase 帐户的步骤,但对于我们的网络应用程序来说,这是不行的,因为它将在没有互联网访问的场所使用。

我会假设可以注册一个符合操作系统将注册的协议的 URL,但我找不到任何此类信息。

如果需要 Internet 访问以支持 Service Worker 推送支持,我假设 Web 应用程序接收后台通知的唯一选择是将其包装在本机 Web 视图中并使用它来调用本地服务。