繁体   English   中英

OneSignal 不想用新通知替换旧通知

[英]OneSignal does not want to replace old notifications with a new one

我正在尝试使用 OneSignal 发送通知。 一切都很好,但我需要以某种方式确保新通知不会覆盖旧通知。 因此,如果我向 Android 手机上的 chrome 发送两个通知,那么我会在锁屏上收到两个通知,而不仅仅是新通知。

我搜索了文档并找到了项目“collapse_id”和“android_group”,我在其中给出了值(字符串)微时间(真),但它没有帮助。

这是一个简单的 PHP 发布通知。

    $fields = array(
        'app_id' => $oneSignalID,
        'included_segments' => [ 'All' ],
        "headings" => [ "en" => "test heading" ],
        'contents' => [ "en" => 'test content' ],
        "collapse_id"=> "ff".(string)microtime(true),
        "android_group"=> "ff".(string)microtime(true),
        "url" => "http://www.example.com"
    );

    $ch = curl_init();
    curl_setopt( $ch, CURLOPT_URL, "https://onesignal.com/api/v1/notifications" );
    curl_setopt( $ch, CURLOPT_HTTPHEADER, array(
        'Content-Type: application/json; charset=utf-8',
        'Authorization: Basic '.$onesignalkey
    ) );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
    curl_setopt( $ch, CURLOPT_HEADER, false );
    curl_setopt( $ch, CURLOPT_POST, true );
    curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode( $fields ) );
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );

    $response = curl_exec( $ch );
    curl_close( $ch );

谢谢你的建议

来自 OneSignal 的工作人员:

您可以使用我们的 API 和以下步骤使用 OneSignal 堆叠通知。 由于滥用和客户投诉,我们已从仪表板中禁用此功能。 当使用我们的 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 也单独显示。

最后,当订阅者检查他的未读通知时,他将看到总共三个通知。

希望这是有道理的!

您必须将选项web_push_topic添加到您的 http 请求中。
同一web_push_topic下的每个通知web_push_topic将替换前一个

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM