我联系了 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 也单独显示。
最后,当订阅者检查他的未读通知时,他将看到总共三个通知。
希望这更有意义!