【问题标题】:OneSignal how to send Push to specific device - ionicOneSignal 如何将 Push 发送到特定设备 - ionic
【发布时间】:2016-10-10 20:37:55
【问题描述】:

我希望 onesignal 能够向特定设备发送推送通知。

  1. 如何获取设备的设备ID?

  2. 我使用什么 API 来推送到该特定设备?

谢谢。

【问题讨论】:

    标签: ionic-framework push-notification uuid onesignal


    【解决方案1】:

    这里是 OneSignal 关于向单个设备发送通知的指南的副本:

    如果您只想向您的测试设备发送通知:

    1. 使用带有sendTag 的唯一标签标记您的设备。

      • 示例:OneSignal.sendTag("is_test", "true")
      • 有关具体示例,请参阅 OneSignal 的 API Reference 以了解您正在使用的 SDK。
    2. 在 OneSignal 仪表板上创建一个名为 test devices 的新 Segment。

    3. 按“添加过滤器”并选择“用户标签”作为“过滤器类型”。
    4. 输入 is_test 等于 true。
      • 您在第 1 步中使用的值。
    5. 创建新通知时,删除“全部”并添加您的测试设备段。

    如果您希望向特定用户设备发送通知: (可用于用户到用户的通知)

    1. 使用getIdsAvailable SDK 方法获取用户的player_id
      • 请参阅 OneSignal 的 API Reference 获取您正在使用的 SDK 的示例代码。
      • 为了进行测试,您可以使用仪表板上用户页面上显示的“玩家 ID”。
        • 您可以强制终止您的应用并再次打开它,以将您的设备置于列表顶部。
    2. 如果 pushToken 不为 null 或为空,则从 getIdsAvailable 回调向您的服务器发送 userId
    3. 在 PostNotification SDK 方法或 create notification REST API 调用上将 include_player_ids 设置为 userId。

    【讨论】:

    • 非常感谢。只是一个小问题,OneSignal.sendTag("is_test", "true") - 参数是键和值。键是 deviceid,值是什么?
    • @Axil sendTags 允许您将自定义键/值对分配给用户。因此,您可以执行 sendTag("age","31") 或 sendTag("city","San Francisco") 之类的操作,或者在本例中为 sendTag("is_test","true")。接下来,您可以将通知定位到具有或不具有特定标签和值的用户。
    • 谢谢。实际上,我无法从服务器端找到有关如何从手机发送的标签中获取 player_id/设备 ID 的部分。
    • 获取用户ID:let status: OSPermissionSubscriptionState = OneSignal.getPermissionSubscriptionState() status.subscriptionStatus.userId
    • 有一件事我不明白你怎么能得到别人的玩家ID?不是只存储在他自己的设备上吗?所以 getidsavailable 只返回你自己的 id?
    猜你喜欢
    • 2012-05-28
    • 2018-11-14
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-24
    • 1970-01-01
    相关资源
    最近更新 更多