使用FCM在Apple Safari中推送通知

Nic*_*ojo 10 safari push-notification apple-push-notifications firebase firebase-cloud-messaging

我们在chrome和firefox中使用FCM实现了推送通知,并且它工作正常,但Safari不支持FCM必需的Service Workers.

有人处理过这类问题吗?有什么建议?

小智 12

Safari 仍然不支持 Web Push API,因此 Firebase Cloud Messaging 服务。

这是 Firebase 中支持的浏览器:https ://firebase.google.com/support/guides/environments_js-sdk#browsers

我建议使用.isSupported()而不是其他解决方案。

if (firebase.messaging.isSupported())
    const messaging = firebase.messaging();
}
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅文档.isSupported()


Fra*_*len 5

虽然服务人员现在可以在Safari上工作,但还远远不够。

文件说:

FCM JavaScript API使您可以在支持Push API的浏览器中运行的Web应用程序中接收通知消息。这包括此支持列表中列出的浏览器版本。

Safari不支持 FCM依赖于Web的浏览器来支持浏览器。因此,这意味着Safari无法接收FCM通知。

  • Safari 11.1支持服务工作者,但似乎它仍然不支持Push API(https://caniuse.com/#feat=push-api)。 (6认同)
  • 还是这样吗?根据Safari 11.1的发行说明,现在支持Service Workers。但是,调用firebase.messaging()。requestPermission会引发错误:“ messaging / unsupported-browser”。仍然缺少其他一些API支持吗? (3认同)
  • 目前,FCM 似乎在 iOS 和 Mac safari 上部分工作(我使用版本 9.18 和 9.19,兼容进行了测试)。主要问题是,在前台,通知仅收到 3 次,之后,firebase 消息令牌将被撤销。当应用程序处于后台并且操作系统在通知栏中显示通知时,不会发生此问题。还有其他人有这种行为吗? (2认同)
  • 嘿弗兰克,你有这方面的最新消息吗?FCM 是否能够支持 IOS Safari 上的推送通知?安德烈(Andrei),您介意发布一个答案,并进一步解释您如何让它发挥作用吗?我将非常感激! (2认同)