OneSignal Chrome多重通知

时间:2017-02-02 11:03:39

标签: c# onesignal

我在网络推送通知方面遇到了一些问题。 我可以定期发送通知,但是,当我发送两个通知并且屏幕上仍然显示第一个通知时,第二个会覆盖第一个通知。

REST API由用C#编写的MVC站点调用,我发送的对象如下:

var obj = new
        {
            app_id = _appKey,
            contents = new { en = message },
            headings = new { en = title },
            included_segments = new[] { "All" },
            url,
            chrome_web_icon = imageUrl,
            priority = 1,
            id = DateTime.Now.ToString("yyyyMMddHHmmss")
        };

有没有人遇到过同样的问题? 我该如何解决?

2 个答案:

答案 0 :(得分:5)

得到OneSignal人的回答。

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

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

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

在Chrome上,即使其他通知与您的网站或OneSignal无关,也会随时显示最多3个通知。这意味着您只能向用户显示3类通知,而不包括当时可能显示的其他通知。 在Windows上的Firefox上,可以一次显示更多通知(6 +)。

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

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

如果您未指定web_push_topic,则每个通知都将替换为较新的通知。如果您指定web_push_topic,则可以选择要替换的通知以及将堆叠的通知。

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

假设您发送了4个通知:

  1. 通知“本周六下午3点1234街的开放日”主题为“开放日”。
  2. 通知“本周六1234街的开放日改为下午4点”主题为“开放日”。
  3. 通知“20个新房符合您在华盛顿州西雅图的标准”,主题为“一般更新”。
  4. 通知“查找您所在地区的代理商”主题为“促销”。
  5. 观察到的通知顺序为:

    1. 通知#1显示。
    2. 通知#2取代#1(即使停靠在Mac OS X的通知托盘中)。
    3. 通知#3单独显示(如果停靠在Mac OS X的通知栏中,则会使用单独的条目。)
    4. 通知#4也单独显示。 最后,当订户检查他未读的通知时,他将看到三个完整的通知。
    5. 示例代码:

      payload = {"app_id": "5eb5a37e-b458-11e3-ac11-000c2940e62c",
                 "include_player_ids": ["6392d91a-b206-4b7b-a620-cd68e32c3a76"],
                 "contents": {"en": "English Message"},
                 "web_push_topic": 'Unique for every notification'}
      

答案 1 :(得分:0)

OneSignal故意实施导致此行为的通知替换。

这样做的原因是为了避免订阅者最多收到100个通知,以便从单个网站中解散,这对他们来说是一种糟糕的经历。

将来OneSignal可能会允许您避免此限制,但在大多数情况下,我们建议不要这样做。