【问题标题】:Push notifications in Apple Safari with FCM使用 FCM 在 Apple Safari 中推送通知
【发布时间】:2018-01-15 05:47:30
【问题描述】:

我们在 chrome 和 firefox 中使用 FCM 实现了推送通知,并且效果很好,但 Safari 不支持 FCM 所必需的 Service Worker。

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

【问题讨论】:

    标签: firebase push-notification safari apple-push-notifications firebase-cloud-messaging


    【解决方案1】:

    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

    【讨论】:

    【解决方案2】:

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

    documentation 说:

    FCM JavaScript API 可让您在支持Push API 的浏览器中运行的网络应用程序中接收通知消息。这包括support matrix 中列出的浏览器版本。

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

    【讨论】:

    • 还是这样吗?根据 Safari 11.1 的发行说明,现在支持 Service Worker。但是,调用 firebase.messaging().requestPermission 会引发错误:“messaging/unsupported-browser”。是否还缺少其他 API 支持?
    • Safari 11.1 支持 Service Worker,但似乎仍然不支持 Push API (caniuse.com/#feat=push-api)。
    【解决方案3】:

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

    【讨论】:

    • 是的,要在 Safari(桌面)上使用推送通知,我们需要为 Apple Dev 的 Web 推送通知生成的 APN 证书。控制台。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-09
    • 2017-12-23
    • 1970-01-01
    相关资源
    最近更新 更多