Push notification 服务工作者能否停止GCM api发送的推送通知?

Push notification 服务工作者能否停止GCM api发送的推送通知?,push-notification,service-worker,web-push,push-api,chrome-gcm,Push Notification,Service Worker,Web Push,Push Api,Chrome Gcm,在我当前的体系结构中,我使用GCMAPI提交推送通知。 这会在服务工作者中触发“推送”事件。然后,服务人员将一些数据添加到通知中 如果服务人员由于某些错误而无法添加数据,我将收到一个空白通知 服务人员能否避免显示GCM发送的通知?来自谷歌开发者: 必须向subscribe()传递{userVisibleOnly:true}参数 方法。这会告诉浏览器,通知将始终处于关闭状态 收到推送消息时显示。目前它是强制性的 显示通知 结果是,如果你没有在推送时显示某个内容(在向浏览器承诺你会这样做之后),浏览

在我当前的体系结构中,我使用GCMAPI提交推送通知。 这会在服务工作者中触发“推送”事件。然后,服务人员将一些数据添加到通知中

如果服务人员由于某些错误而无法添加数据,我将收到一个空白通知

服务人员能否避免显示GCM发送的通知?

来自谷歌开发者:

必须向subscribe()传递
{userVisibleOnly:true}
参数 方法。这会告诉浏览器,通知将始终处于关闭状态 收到推送消息时显示。目前它是强制性的 显示通知


结果是,如果你没有在推送时显示某个内容(在向浏览器承诺你会这样做之后),浏览器(无论如何,Chrome)只会为你显示某个内容。但是,这很可能会在某个时候发生变化。

似乎在遇到错误条件时,您仍然会显示自己的通知,因为您无法填充它,所以它会显示为空白

您最好的选择是回退到一些通用文本。你可以冒险不显示它,但几次之后chrome将开始显示它自己的通知(毕竟你“承诺”你会通过说{userVisibleOnly:true}来显示一个)

我能想到的查看chrome代码的最佳步骤顺序是:

1) 尝试显示要显示的通知 2) 如果由于任何原因失败,请检查您是否在前台,或者您的通知是否已经显示。如果是这样,什么也不做
3) 否则你需要显示一个通知,否则chrome很可能会为你显示它,冒这个风险可能是不值得的。只需添加一些通用文本并显示即可。

所谓“空白通知”是指chrome显示的通知还是实际上是空白的。你指的是什么错误?“但是,如果服务人员由于某些错误而无法添加数据”,通过“空白通知”,我的意思是使用默认文本显示通知。在ServiceWorker中,我调用api将数据添加到通知中。比如说,api关闭,无法添加数据。我可以让服务人员停止显示通知吗?不可以。但是“api”不能关闭,所以我仍然不确定您所遇到的场景。