Onesignal 网络推送覆盖

Posted

技术标签:

【中文标题】Onesignal 网络推送覆盖【英文标题】:Onesignal web-push overwriting 【发布时间】:2018-06-28 09:45:18 【问题描述】:

我正在使用 OneSignal 网络推送通知从使用 php 构建的网站向我的客户发送通知。过了一会儿,我意识到如果我发送第一个通知但客户没有在他的设备上打开它,然后我发送另一个通知,智能手机不会将它们堆叠在一起 在通知区域中,而是用第二个覆盖第一个。这意味着客户端刚刚错过了第一个通知。

当然,在我在这里提问之前,我曾尝试对其进行研究,但没有成功 - 我是否可能忽略了解释如何解决此错误的文档的某些部分?

【问题讨论】:

【参考方案1】:

我联系了 OneSignal 的官方支持并得到了一个超级简单但详细的解决方案 - 您是否正在处理类似的问题,请参阅下面的电子邮件副本(谢谢,Jon:))。

当使用我们的 REST API 以编程方式发送通知时,您可以使用未记录的参数 web_push_topic

在一组共享相同 web_push_topic 的通知中,新收到的通知将替换旧收到的具有相同主题的通知。只有共享相同主题的通知才会被替换;没有主题或不同主题的通知将不会被替换。您可以为不同的通知集设置不同的主题,以控制哪些通知留在屏幕上。

web_push_topic 值可以是任何字符串值。

在 Chrome 上,任何时候最多显示 3 条通知,即使其他通知与您的网站或 OneSignal 无关。这意味着您只能向用户显示 3 类通知,不包括当时可能显示的其他通知。

在 Windows 上的 Firefox 上,一次可以显示更多通知 (6+)。

在 Mac 上的 Firefox 和 Mac 上的 Safari 上,一次只能显示一个通知,即使其他通知与您的站点或 OneSignal 无关。通知也会在 5 秒内快速消失,而且此时间不可自定义。

android 上的 Chrome/Firefox 上,可以一次显示多个通知。

如果您不指定 web_push_topic ,则每个通知都将被更新的通知替换。如果您确实指定了 web_push_topic,您可以选择将替换哪些通知以及将哪些通知堆叠。

使用我们的 API 发送通知时,为 web_push_topic 设置字符串值将设置通知的主题。任何共享同一主题的通知将相互替换,但任何具有不同主题的通知都不会被替换。

假设你发送了 4 个通知:

通知“本周六下午 3 点在 1234 Street 开放日”,主题为“开放日”。 通知“本周六 1234 街的开放日更改为下午 4 点”,主题为“开放日”。 通知“华盛顿州西雅图有 20 家新房符合您的条件”,主题为“一般更新”。 主题为“促销”的通知“在您所在地区寻找代理”。 观察到的通知顺序将是:

通知 #1 显示。 通知 #2 替换 #1(即使停靠在 Mac OS X 的通知托盘中)。 通知#3 单独显示(如果停靠在 Mac OS X 的通知托盘中,它将使用单独的条目)。 通知#4 也单独显示。 最后,当订阅者检查他的未读通知时,他将看到总共三个通知。

希望这更有意义!

【讨论】:

以上是关于Onesignal 网络推送覆盖的主要内容,如果未能解决你的问题,请参考以下文章

根据 OneSignal 的用户数据库直接发送 Web 推送 (Chrome - GCM/FCM) 通知

使用 OneSignal 推送通知服务向特定测试设备发送推送通知

Android 从 GCM 迁移到 oneSignal 推送通知

OneSignal 推送通知序列(顺序)不正确

控制屏幕上显示的 OneSignal 推送通知时间

OneSignal:推送通知不起作用