【问题标题】:Firebase Cloud Messaging doesn't work on chrome (iOS)Firebase 云消息传递不适用于 chrome (iOS)
【发布时间】:2017-09-06 09:33:18
【问题描述】:

我刚刚开始测试 Firebase 的网站推送通知。基本代码似乎在许多基于 Android 的浏览器(Chrome、Firefox ......)应用程序上运行良好,但不是那些安装在 iOS 上的应用程序,例如我的 iPad 或 iPhone 上的 Chrome。我找不到与此问题相关的任何信息。我错过了什么吗?

firebase.initializeApp(config);
const messaging = firebase.messaging();

messaging.requestPermission()
.then(function () {
    console.log('Notification permission granted.');
    // TODO(developer): Retrieve an Instance ID token for use with FCM.
    // ...
})
.catch(function (err) {
    console.log('Unable to get permission to notify.', err);
});

【问题讨论】:

  • firebase 消息传递是否依赖于已安装的 Service Worker? iOS 还不支持。

标签: ios google-chrome firebase firebase-cloud-messaging


【解决方案1】:

iOS 上的 Chrome 建立在与 Safari 相同的基本 Web 视图之上。由于该底层组件不支持 Web Push,因此 FCM 推送通知无法传递到 iOS 上的 Chrome。

【讨论】:

  • 嗨@Frank,我想知道是否有任何方法可以填充它以便它在iOS Chrome 上可用?
  • @Frank 有没有办法在 Safari 中排除 FCM 服务人员?因为现在它破坏了网页,只加载了一个空白页。在所有其他操作系统中都能正常工作。
  • @NadhirFalta 你可以使用firebase.messaging.isSupported()
  • @AndresSK 谢谢!这就是我在下面的答案中使用的!
【解决方案2】:

如果您在 iOS 浏览器上的网站上出现空白页面,以供将来参考。 只需通过检查该浏览器是否支持 FCM firebase.messaging.isSupported() 来将您的服务器工作者包装在 if 语句中

if (firebase.messaging.isSupported()) {
    firebase.initializeApp({
        'messagingSenderId': 'your code here'
    });
    ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 2019-07-12
    • 2021-06-21
    • 1970-01-01
    • 2020-07-10
    • 1970-01-01
    相关资源
    最近更新 更多