service-worker - 定制推送服务

标签 service-worker web-push web-notifications push-api

在向 Web 浏览器推送通知的上下文中,推送服务充当 SERVICE WORKER 和 APPLICATION SERVER 之间的接口(interface)。

我目前的理解是

  • Google FCM 是 Google Chrome 和 FireFox 浏览器的推送服务
  • APNS(Apple 推送通知服务)是 Safari 浏览器的推送服务

这里,在技术上是否可以用通用的自定义服务工作线程来替代“推送服务”(即,用于 Google Chrome 和 FireFox 浏览器的 Google FCM 以及用于 Safari 的 APNS),该服务工作线程有可能解决所有流行的浏览器问题支持 Service Worker 和 Push API?

换句话说,开发人员是否可以控制浏览器使用哪个推送服务(或者)为所有浏览器开发自定义推送服务?

最佳答案

您基本上是正确的:推送服务充当服务工作人员和应用程序服务器之间的接口(interface),此外,服务工作人员(或可能是 Web 应用程序)将订阅信息发送到推送服务之外的应用程序服务器,因此应用程序服务器知道端点以及如何正确加密任何通知内容。

Google 在 Chrome 中使用 GCM/FCM,Mozilla 在桌面版 Firefox 中使用自己的推送服务,而在 Android 中则使用 GCM/FCM 和/或自己的服务;请参阅“Firefox 使用哪些信息来提供 Web 推送?”节here .

在撰写本文时,Chrome , FirefoxEdge支持 Push API,因此无需单独处理每个 API(WebKit 不支持)。

简短回答:开发人员无法选择客户端使用哪种推送服务,但推送 API 的采用标准化了主要浏览器(不包括 WebKit)的服务工作线程和 Web 推送。

关于service-worker - 定制推送服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51116985/

相关文章:

javascript - 在 serviceWorker 之外使用 cacheStorage 不好吗?为什么?

javascript - 使用workbox的injectmanifest在vue.js中创建服务 worker 崩溃

javascript - 在初始化时将数据传递给 Service Worker js

javascript - 如何在 HTML5 Web 应用程序中进行推送通知?

javascript - 如何向网络应用程序和浏览器发送推送通知?

javascript - 在通知中显示图标 Firefox OS

push-notification - ServiceWorker WindowClient.navigate promise 被拒绝

javascript - PWA 是否与浏览器共享 web-push 订阅?

google-cloud-messaging - 使用 Pubnub 在渐进式 Web 应用程序上发送和接收推送通知