我正在尝试在 Chrome 上使用 Firebase 的服务工作者来实现推送通知。我的 Web 应用程序中有一个清单文件和一个 sw.js 文件。我已经在 Firebase 中创建了一个项目,并测试了注册和发送通知。所有这些都很好,只是当接收通知时,数据为 null。我不明白为什么,也没有任何有用的资源(据我所知!)。下面是我的服务工作者文件:
self.addEventListener('push', function(event) {
console.log('Push message', event);
var title = 'Push message';
event.waitUntil(
self.registration.showNotification(title, {
body: 'The Message',
icon: 'images/logo.svg',
tag: 'my-tag'
}));
});
这是我的main.js文件:
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw.js').then(function(registration) {
// Registration was successful
console.log('ServiceWorker registration successful with scope: ', registration.scope);
registration.pushManager.subscribe({
userVisibleOnly: true
}).then(function(sub) {
console.log('endpoint:', sub.endpoint);
}).catch(function(e) {
});
}).catch(function(err) {
// registration failed :(
console.log('ServiceWorker registration failed: ', err);
});
}
清单文件.json:
{
"name": "APPNAME",
"gcm_sender_id": "SENDERID"
}
cURL请求:
curl --header "Authorization: key=APIKEY" -application/json" https://fcm.googleapis.com/fcm/send -d "{\"registration_ids\":[\"REGISTRATIONID\"],\"notification\":{\"title\":\"test\",\"body\":\"testing\"},\"data\":{\"title\":\"erse\"}}"
我没有收到请求中发送的任何数据。这是否是通过 Firebase 以其他方式完成的? 提前感谢。