我能够很好地使用 setBackgroundMessageHandler 用例的 Web 通知,而不会出现问题。
但是,当我尝试在选择/激活Chrome浏览器选项卡时使用通知时,永远不会调用消息传递.onMessage。
服务器始终发送消息:
{"multicast_id":*********,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:*********"}]}
Chrome版本:版本79.0.3945.130(官方版本((64位(
以下是我在我的页面中配置 Firebase 的方式:
var messaging;
var config = {
apiKey: "*************",
authDomain: "*************",
databaseURL: "*************",
projectId: "*************",
storageBucket: "*************",
messagingSenderId: "*************",
appId: "*************"
};
firebase.initializeApp(config);
messaging = firebase.messaging();
if (firebase.messaging.isSupported()) {
console.log('Messaging supported!!!!');//excutes, so messenging supported
messaging.onMessage(function (payload) {
console.log('Message received. ', payload);//never invoked :(
});
}
为了完整起见,firebase-messeging-sw.js它运行良好:
self.addEventListener('notificationclick', function(event) {
...
...
}
importScripts('https://www.gstatic.com/firebasejs/7.8.2/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/7.8.2/firebase-messaging.js');
firebase.initializeApp({
'messagingSenderId': "*************",
'apiKey': "*************",
'projectId': "*************",
'appId': "*************",
'authDomain': "*************",
'storageBucket' :"*************"
});
const messaging = firebase.messaging();
messaging.setBackgroundMessageHandler(function(payload) {
//gets called :)
});
任何想法或调试提示?
想通了,我的 firebase 库版本在客户端和 firebase-messenging-sw 之间是不同的.js