推送通知适用于Chrome桌面,但不适用于Android手机上的PWA



如果我在桌面上访问我的网站,请添加通知权限,然后从服务器发送测试推送,一切正常。

Android手机(Chrome 58(上的相同步骤会导致"此站点已在后台更新"通知。没有标题,没有正文。

这是我的sw.js

self.addEventListener("push", function(event) {
if (event.data) {
const data = event.data.text().split('t') // [0] = title , [1] = body
const options = {
body: data[1],
}
event.waitUntil(self.registration.showNotification(data[0], options))
} else {
console.log("Push event but no data")
}
})

登录服务器(node.js使用web-push(:

{ statusCode: 201,
body: '',
headers:
{ location:
'https://fcm.googleapis.com/0:15...',
'x-content-type-options': 'nosniff',
'x-frame-options': 'SAMEORIGIN',
'x-xss-protection': '0',
date: 'Tue, 10 Sep 2019 18:13:39 GMT',
'content-length': '0',
'content-type': 'text/html; charset=UTF-8',
'alt-svc': 'quic=":443"; ma=2592000; v="46,43,39"',
connection: 'close' } }

当服务工作者收到推送但尚未显示推送时,将显示"This site has been updated in the background."

在我的代码中,我有一个else块,它会跳过显示通知。事实证明,这正是代码最终的位置,因为它缺少数据。

请参阅在Android的PWA上缺少推送数据,但在桌面上没有

最新更新