Mon*_*nja 12 google-chrome web-push
我想使用 Service Workers 在我的渐进式 Web 应用程序(PWA) 上设置 Web 推送通知。但我无法理解 Google Cloud Messaging 和 Amazon SNS 等第三方服务的作用,以及我是否需要它们。
据我了解,当用户单击“允许通知”按钮时,您将获得一个唯一的订阅端点。然后在后端,您可以使用此端点向该特定用户发送通知。
然而,我发现的所有后端库(例如Node.js 的pywebpush或web-push)都提到您需要 GCM API 密钥才能发送通知。
但MDN Push API 文档是这样说的:
早于 52 的 Chrome 版本要求您在 Google Cloud Messaging 上设置一个项目来发送推送消息 [...]
所以我假设新版本的 Chrome(今天的版本 58)应该能够在没有第三方帮助的情况下显示通知。
这是我想要实现的目标的示例。我只是不确定他们在后端做什么。
注意:我并不是尝试将本机推送通知发送到 Android 或 iOS 设备,而只是使用 Web Push API 发送到 Chrome 上的渐进式 Web 应用程序。
正如我在另一个答案中解释的那样,为了发送网络推送通知,您需要与浏览器推送服务进行交互。基本上,当用户允许推送通知时,每个浏览器都会返回一个特定于其自己的推送服务的端点 (URL)。
例如:
https://fcm.googleapis.com/,因为它们使用FCM(前 GCM)https://updates.push.services.mozilla.com/,因为 Firefox 使用Mozilla autopush因此通知将始终通过 FCM 和 autopush 传递,别无选择:推送服务是硬编码在浏览器内部的。
还有另一种网络推送服务。他们的目标是在浏览器推送服务上提供一个抽象层和附加功能。例如Pushpad就是其中之一(我是创始人)。
您的 Web 应用程序可以只与一个推送服务(例如 Pushpad)交互,而不是直接与不同的浏览器推送服务(例如 FCM、autopush)交互,然后该服务会为您与浏览器推送服务交互(自动执行许多任务,例如 VAPID 和提供额外的功能,如监控和集成)。
FCM 相当令人困惑,因为它既充当 Chrome 和 Opera 的“浏览器推送服务”,又充当其他浏览器的通用“网络推送通知服务”。例如,对于 Firefox,FCM 充当 Mozilla 自动推送的代理。
| 归档时间: |
|
| 查看次数: |
3067 次 |
| 最近记录: |