【发布时间】:2018-01-15 05:47:30
【问题描述】:
我们在 chrome 和 firefox 中使用 FCM 实现了推送通知,并且效果很好,但 Safari 不支持 FCM 所必需的 Service Worker。
有人处理过这类问题吗?有什么建议吗?
【问题讨论】:
标签: firebase push-notification safari apple-push-notifications firebase-cloud-messaging
我们在 chrome 和 firefox 中使用 FCM 实现了推送通知,并且效果很好,但 Safari 不支持 FCM 所必需的 Service Worker。
有人处理过这类问题吗?有什么建议吗?
【问题讨论】:
标签: firebase push-notification safari apple-push-notifications firebase-cloud-messaging
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();
}
有关.isSupported() 的详细信息,请参阅documentation。
【讨论】:
虽然 Service Worker 现在可以在 Safari 上工作,但它们还不够。
FCM JavaScript API 可让您在支持Push API 的浏览器中运行的网络应用程序中接收通知消息。这包括support matrix 中列出的浏览器版本。
Safari doesn't support web push,FCM 依靠它来支持浏览器。这意味着 Safari 无法接收 FCM 通知。
【讨论】:
我不确定这种新的 Safari 和 Service Workers 情况,但我尝试在我的 iOS 应用程序中实现 FCM 推送通知,并且必须先体验到您需要 APN(Apple-Push-Notification)证书。如果您使用 Safari,我不确定这是否需要,但我可以想象 Apple 还希望它的推送通知首先被重定向到 APN 服务器。
【讨论】: