firebase 使用FCM在Apple Safari中推送通知

2cmtqfgy  于 2022-11-17  发布在  其他
关注(0)|答案(4)|浏览(281)

我们在chrome和firefox中使用FCM实现了推送通知,它工作得很好,但Safari不支持服务工作者,这是FCM的强制性要求。
有人处理过这类问题吗?有什么建议吗?

f0ofjuux

f0ofjuux1#

虽然服务工作者现在在Safari上工作,但他们还不够。
documentation表示:
FCM JavaScript API允许您在支持Push API的浏览器中运行的Web应用程序中接收通知消息。这包括本支持列表中列出的浏览器版本。
因此,通过FCM接收消息的能力取决于实现Web Push API的浏览器,而Web Kit不这样做。
Safari是基于Web Kit构建的,因此不支持Web推送,这意味着Safari无法接收FCM通知。iOS设备上的所有浏览器也都是基于Web Kit构建的(因为这是苹果的要求),因此FCM也无法接收其中任何一个的消息
如果你想测试你的代码运行的环境是否可以接收来自FCM的消息,你可以使用下面的代码片段:

if (firebase.messaging.isSupported())
  ...
}
5w9g7ksd

5w9g7ksd2#

Safari仍然不支持Web Push API,因此不支持Firebase云消息服务。
以下是Firebase中支持的浏览器:https://firebase.google.com/support/guides/environments_js-sdk#browsers
我建议使用.isSupported()而不是其他解决方案。

if (firebase.messaging.isSupported())
    const messaging = firebase.messaging();
}

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

yvt65v4c

yvt65v4c3#

我不确定这种新的Safari和Service Workers的情况,但我试图在我的iOS应用程序中实现FCM推送通知,并不得不体验到你需要一个APN(苹果推送通知)证书第一.我不知道这是否是必要的,如果你使用Safari,但我可以想象,苹果也希望它的推送通知第一次被重定向到APN服务器.

zqry0prt

zqry0prt4#

FCM不支持Safari浏览器。
如果你想为Safari浏览器集成PUSH通知,点击这个链接。Safari有自己的机制。
https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/NotificationProgrammingGuideForWebsites/PushNotifications/PushNotifications.html#//apple_ref/doc/uid/TP40013225-CH3-SW1

相关问题