Onesignal 网络推送覆盖

Onesignal web-push overwriting

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

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

我联系了 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 秒内快速消失,这个时间不可自定义。

Chrome/Firefox Android,一次可以显示多个通知。

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

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

假设您发送了 4 条通知:

主题为 'open-houses' 的通知 "Open house at 1234 Street at 3 PM this Saturday"。 主题为 'open-houses' 的通知 "Open house at 1234 Street changed to 4 PM this Saturday"。 主题为 'general-updates' 的通知“华盛顿州西雅图有 20 栋新房子符合您的条件”。 主题为 'promotional' 的通知 "Find an agent in your area"。 观察到的通知顺序为:

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

希望这更有意义!