因此,我需要在我们的Web应用中实现Web推送通知,我已经使用文档成功地在我的应用中设置了Firebase云消息传递,我可以询问用户允许通知的权限,并且如果他接受权限,也可以获得令牌ID。未在本地主机上接收FCM推送通知
事情是当我尝试发送通知来测试生成的令牌时,我收到消息发送的响应,但我无法在客户端接收到它。
我的index.html
<head>
<script src="https://www.gstatic.com/firebasejs/4.4.0/firebase.js"></script>
<link rel="manifest" href="./firebase.json">
</head>
<script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('./firebase-messaging-sw.js').then(function(registration) {
console.log('Firebase Worker Registered');
}).catch(function(err) {
console.log('Service Worker registration failed: ', err);
});
}
</script>
我能够成功地注册服务工作者文件
我App.component.ts
var config = {
apiKey: "somekey",
authDomain: "someproject-2.firebaseapp.com",
databaseURL: "https://someproject-2.firebaseio.com",
projectId: "someproject-2",
storageBucket: "",
messagingSenderId: "someid"
};
firebase.initializeApp(config);
const messaging = firebase.messaging();
messaging.requestPermission()
.then(function() {
console.log('Notification permission granted.');
return messaging.getToken()
})
.then(function(result) {
console.log("The token is: ", result);
})
.catch(function(err) {
console.log('Unable to get permission to notify.', err);
});
messaging.onMessage(function(payload) {
console.log("Message received. ", payload);
});
我得到许可对话框方框询问权限并获取带有此代码的令牌
我用来卷曲的代码发送消息
curl -X POST -H "Authorization: key=somekey" -H "Content-Type: application/json" -d '{
"notification": {
"title": "Portugal vs. Denmark",
"body": "5 to 1",
"icon": "firebase-logo.png",
"click_action": "http://localhost:8081"
},
"to": "sometoken"
}' "https://fcm.googleapis.com/fcm/send"
我能够成功地发送通知,此代码
我想不通我要去哪里错了,也许是因为它是在本地主机上?也许onMessage方法运行不正常?任何帮助,高度赞赏!
服务工作人员不适用于不安全的来源。所以你的本地主机必须在https上。 –
您是否发现问题?我也有完全一样的问题。 – chrisonline
没有兄弟,会让你知道,如果我找到 –