Javascript FCM此网站已在后台更新
因此,我使用启用了PWA选项的VueJS。使用Firebase Cloud Messaging(用于web应用程序)时,我收到一条通知:“此网站已在后台更新,但仅当选项卡未聚焦或未打开时才更新。”。如果选项卡处于活动状态,我在控制台中不会收到任何信息。 我现在正在使用Postman发送通知,它返回成功Javascript FCM此网站已在后台更新,javascript,firebase,vue.js,firebase-cloud-messaging,firebase-notifications,Javascript,Firebase,Vue.js,Firebase Cloud Messaging,Firebase Notifications,因此,我使用启用了PWA选项的VueJS。使用Firebase Cloud Messaging(用于web应用程序)时,我收到一条通知:“此网站已在后台更新,但仅当选项卡未聚焦或未打开时才更新。”。如果选项卡处于活动状态,我在控制台中不会收到任何信息。 我现在正在使用Postman发送通知,它返回成功 { "multicast_id": 5364665067527599460, "success": 1, "failure": 0, "canonical_ids"
{
"multicast_id": 5364665067527599460,
"success": 1,
"failure": 0,
"canonical_ids": 0,
"results": [
{
"message_id": "0:1550148053476716%2fd9afcdf9fd7ecd"
}
]
}
这是我的main.js
const config = {
apiKey: "API_KEY",
authDomain: "AUTH_DOMAIN",
databaseURL: "DATABASE_URL",
projectId: "PROJECT_ID",
storageBucket: "STORAGE_BUCKET",
messagingSenderId: "SENDER_ID"
};
firebase.initializeApp(config);
const messaging = firebase.messaging();
messaging.usePublicVapidKey("PUBLIC_VAPID_KEY");
navigator.serviceWorker.register('./firebase-messaging-sw.js')
.then((registration) => {
console.log("Now using registration: " + registration);
messaging.useServiceWorker(registration);
}).catch(err => {
console.log("Error in registration");
console.log(err)
});
我的firebase messaging sw.js
(我从未看到setBackgroundMessageHandler
中的控制台日志)
在我的App.vue
(我也没有看到控制台登录到onMessage
)
我可以访问令牌,我的配置没有错误,否则邮递员请求不会成功。我还问了其他几个与此相关的问题,但到目前为止没有成功…嗨,亚当。我对这条消息有一个问题,但它是在tab处于焦点时出现的。在这种情况下,我会收到相同的信息,但如果没有集中注意力,它就会起作用。首先,如果名称是默认名称(firebase messaging sw.js),则不需要注册服务工作者。您只需要将此文件保存在同一文件夹中。在控制台上,你能看到什么吗?我在这两种情况下都提问(关注标签和不关注标签)…嗨,亚当。我对这条消息有一个问题,但它是在tab处于焦点时出现的。在这种情况下,我会收到相同的信息,但如果没有集中注意力,它就会起作用。首先,如果名称是默认名称(firebase messaging sw.js),则不需要注册服务工作者。您只需要将此文件保存在同一文件夹中。在控制台上,你能看到什么吗?我在这两种情况下都提问(关注标签和不关注标签)。。。
importScripts('https://www.gstatic.com/firebasejs/5.8.2/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/5.8.2/firebase-messaging.js');
var config = {
messagingSenderId: 'SENDER_ID'
};
firebase.initializeApp(config);
let messaging = firebase.messaging();
messaging.setBackgroundMessageHandler(function(payload) {
console.log('[firebase-messaging-sw.js] Received background message ', payload);
return self.registration.showNotification('title', {body: 'message'});
});
created() {
this.$messaging.onMessage(function(payload) {
console.log('Message received: ', payload);
// ...
});
},
methods: {
sendNotif() {
this.$messaging.requestPermission().then(() => this.$messaging.getToken())
.then((token) => {
console.log(token) // Receiver Token to use in the notification
})
.catch(function(err) {
console.log("Unable to get permission to notify.", err);
});
},
},