GCM webpush 在后台
Posted
技术标签:
【中文标题】GCM webpush 在后台【英文标题】:GCM webpush in background 【发布时间】:2015-08-31 20:18:13 【问题描述】:我实现了网络推送通知。获取错误的步骤:
-
打开网站
订阅推送通知
通过 gcm 发送许多推送 - 一切正常
关闭网站标签
发送推送和接收“双推” - 第一个可以,第二个是“此站点已在后台更新”
重新打开网站
发送推送 - 一切正常
我知道当服务人员收到推送但不显示通知时会发生这种情况。但是我看到正常通知,为什么我还看到其他奇怪的通知?我可以摆脱这种行为吗?
【问题讨论】:
你能澄清#5吗?您是否发送了一条推送消息但收到了其中两条?还是只发送两条推送消息? 这也是桌面版还是安卓版? @MiguelGarcia 我在桌面上测试过它。 #5 发送一条推送消息 - 接收两次推送。第一个是真实的,第二个不是。 我遇到了类似的问题。我一直在回报一个承诺。也许你能帮助我? ***.com/questions/35948633/… 【参考方案1】:self.addEventListener('push', function(event)
// this function should return promise always
就我而言:
self.addEventListener('push', function(event)
event.waitUntil(
self.registration.pushManager.getSubscription()
.then(function(subscription)
fetch('url')
.then(function(response)
self.registration.showNotification('title', );
);
);
);
应该是:
self.addEventListener('push', function(event)
event.waitUntil(
self.registration.pushManager.getSubscription()
.then(function(subscription)
return fetch('url')
.then(function(response)
return self.registration.showNotification('title', );
);
);
);
【讨论】:
谢谢。我遇到了同样的问题,并且在 fetch 调用之前缺少 return 语句。以上是关于GCM webpush 在后台的主要内容,如果未能解决你的问题,请参考以下文章
GCM 网络管理器已弃用。 Firebase Jobdispatcher 没有在后台持续工作?