【问题标题】:ReactJS - FCM not working in safari browser [duplicate]ReactJS - FCM 在 Safari 浏览器中不起作用 [重复]
【发布时间】:2021-04-01 09:59:17
【问题描述】:

我正在尝试在我的 ReactJS 应用程序中实现 FCM 推送通知。 它在 chrome 和 firefox 浏览器中完美运行,但在 safari 浏览器中遇到问题。

FirebaseError:消息:此浏览器不支持使用 firebase SDK 所需的 API。 (消息/不支持的浏览器)。

我也浏览了firebase的文档,发现它只支持3个浏览器。

  • 火狐

  • Safari

在 safari 浏览器中是否也有任何方法支持。

【问题讨论】:

    标签: javascript reactjs firebase safari firebase-cloud-messaging


    【解决方案1】:

    7.20.0+

    初始化 firebase
    import firebase from 'firebase/app'
    import 'firebase/messaging'
    
    const config = {
      // download from firebase console
    }
    
    let messaging = null
    
    if (firebase.messaging.isSupported()) {
      firebase.initializeApp(config)
      messaging = firebase.messaging()
    } else {
      console.log('no-support :(')
    }
    

    【讨论】:

      【解决方案2】:

      我在 Safari 中遇到错误,因为不支持 FCM。

      Firebase 提供了一种内置方法来检查天气 FCM 是否支持。

          if(firebase.messaging.isSupported()) {
              messaging = initializedFirebaseApp.messaging();
              messaging.usePublicVapidKey(
                "Key"
              );
          }
      
      

      【讨论】:

        【解决方案3】:

        Safari 11.1 已经支持serviceWorker,但它仍然不支持 FCM Javascript API 也需要的PushAPI

        取自 Firebase 文档 (https://firebase.google.com/docs/cloud-messaging/js/client):

        FCM JavaScript API 可让您在支持 Push API 的浏览器中运行的 Web 应用程序中接收通知消息。

        这里是支持的浏览器列表:https://caniuse.com/#feat=push-api 声明 Safari 仍然不支持 Push API

        【讨论】:

        • 这似乎与这个问题的其他答案几乎相同。
        • 对不起,写这篇文章是因为我在读到 Safari 现在支持 serviceWorker 但 FCM 仍然无法正常工作后感到沮丧。后来才发现不仅是因为serviceWorker,还有Push API,只是为了帮助那些想知道为什么它在最新的Safari中仍然不起作用的人
        【解决方案4】:

        来自Firebase documentation

        FCM JavaScript API 可让您在提供 Service Worker 支持的浏览器中运行的 Web 应用程序中接收通知消息。这包括以下浏览器:

        铬:50+

        火狐:44+

        Opera 移动版:37 岁以上

        似乎(尚)不支持 Safari。

        【讨论】:

        • 现在的预期解决方案是否只是为了消除警告而不在 Safari 中加载 Firebase SDK?如果是,推荐的方法是什么?
        • 您是如何解决这个问题的,因为网页根本无法加载。仅在 iOS 网络浏览器上发生。
        猜你喜欢
        • 2017-12-07
        • 2015-05-06
        • 1970-01-01
        • 2018-06-01
        • 1970-01-01
        • 2020-04-05
        • 2021-10-18
        • 2018-10-10
        相关资源
        最近更新 更多