使用 FCM 在 Apple Safari 中推送通知

Push notifications in Apple Safari with FCM

我们在 chrome 和 firefox 中使用 FCM 实现了推送通知,它运行良好,但 Safari 不支持 FCM 所必需的 Service Workers。

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

我不确定这种新的 Safari 和 Service Workers 情况,但我尝试在我的 iOS 应用程序中实施 FCM 推送通知,并且不得不体验到您需要一个 APN(Apple-Push-通知)证书第一。如果您使用的是 Safari,我不确定是否需要这样做,但我可以想象 Apple 也希望它的推送通知首先被重定向到 APN 服务器。

虽然 Service Workers 现在可以在 Safari 上工作,但它们还不够。

documentation 说:

The FCM JavaScript API lets you receive notification messages in web apps running in browsers that support the Push API. This includes the browser versions listed in this support matrix.

Safari doesn't support web push,FCM 依赖它来提供浏览器支持。所以这意味着 Safari 无法接收 FCM 通知。

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() 的详细信息,请参阅 documentation

FCM 不支持 Safari 浏览器。

如果要为 Safari 浏览器集成 PUSH 通知,请按照此 link。 Safari 有它自己的机制。

https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/NotificationProgrammingGuideForWebsites/PushNotifications/PushNotifications.html#//apple_ref/doc/uid/TP40013225-CH3-SW1