如何解决firebase safari 错误消息:此浏览器不支持使用 firebase SDK 所需的 API
我们使用的是 firebase 8.2.1 版本。
我们正在使用 react 和 typescript 进行开发。
仅当我在 safari 中查看时才会出现该错误。
错误是 FirebaseError: Messaging: This browser does not support the API's required to use the firebase SDK.(messaging/unsupported-browser).
看了下文档,只有safari不支持云消息。
我该如何解决这个问题?
https://firebase.google.com/support/guides/environments_js-sdk?hl=ja[enter此处的链接说明]1
import firebase from 'firebase/app';
import 'firebase/messaging';
import { asyncNotificationToken } from 'apis/asyncNotificationToken';
const firebaseConfig = {
apiKey: '******************',projectId: '******',messagingSenderId: '*******',appId: '********',};
const vapid_KEY =
'******************************';
if (firebase.apps.length < 1) {
firebase.initializeApp(firebaseConfig);
}
export const prepareNotification = () => {
firebase
.messaging()
.requestPermission()
.then(() => {
prepareNotificationToken();
})
.catch(() => {
console.log('Unable to get permission to notify.');
});
};
export const prepareNotificationToken = () => {
firebase
.messaging()
.getToken({ vapidKey: vapid_KEY })
.then((token) => {
asyncNotificationToken(token).then(() => {
console.log('Registed notification token.');
});
});
};
export const prepareNotification = () => {
let messaging = null;
if (firebase.messaging.isSupported()) {
messaging = firebase.messaging();
}
firebase
.messaging()
.requestPermission()
.then(() => {
prepareNotificationToken();
})
.catch(() => {
console.log('Unable to get permission to notify.');
});
};
export const prepareNotificationToken = () => {
firebase
.messaging()
.getToken({ vapidKey: vapid_KEY })
.then((token) => {
asyncNotificationToken(token).then(() => {
console.log('Registed notification token.');
});
});
};
解决方法
遗憾的是,Safari 尚不支持 Push API,因此消息传递不起作用。
在尝试使用之前检查兼容性。
let messaging = null;
if (firebase.messaging.isSupported(){
messaging = firebase.messaging();
}
有关 .isSupported() 的详细信息,请参阅 documentation。
在 Mac 桌面上有一个 feature request 支持 safari push notification。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。