ReactJS - FCM无法在safari浏览器中运行

时间:2018-05-20 10:28:39

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

我正在尝试在我的ReactJS应用程序中实现FCM推送通知。 它完全适用于chrome和firefox浏览器,但在safari浏览器中面临一个问题。

  

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

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

  • 浏览器

  • 火狐

  • Safari浏览器

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

4 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

来自Firebase documentation

  

FCM JavaScript API允许您在提供服务工作者支持的浏览器中运行的Web应用程序中接收通知消息。这包括以下浏览器:

     

Chrome:50 +

     

Firefox:44 +

     

Opera Mobile:37 +

似乎尚未支持Safari。

答案 3 :(得分:0)

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 :(')
}