OneSignal如何向特定设备发送推送 - ionic

23
我希望onesignal能够向特定设备发送推送通知。
  1. 如何获取设备ID?

  2. 我应该使用哪个API向该特定设备推送消息?

谢谢。
1个回答

17
以下是 OneSignal 发送通知到单个设备的指南副本:
如果您只想向测试设备发送通知: 1. 使用 `sendTag` 为您的设备打上唯一标签。 - 示例: `OneSignal.sendTag("is_test", "true")` - 有关确切示例,请参阅您正在使用的 SDK 的 OneSignal API 参考。 2. 在 OneSignal 仪表板上创建一个名为“测试设备”的新段。 3. 点击“添加筛选器”并选择“用户标签”作为“筛选器类型”。 4. 输入等于 true 的 is_test。 - 此处的值应与步骤 1 中使用的值相同。 5. 创建新通知时,请删除“全部”并添加您的测试设备段。
如果您想向特定用户设备发送通知(可用于用户间通知):
  1. 使用 getIdsAvailable SDK 方法获取用户的 player_id
    • 请参考OneSignal的API Reference以获取您正在使用的SDK的示例代码。
    • 在测试中,您可以使用仪表板上用户页面上显示的“Player ID”。
      • 您可以强制关闭您的应用程序并重新打开它,以将您的设备置于列表顶部。
  2. 如果pushToken不为null或空白,请从getIdsAvailable回调发送userId到您的服务器。
  3. 在PostNotification SDK方法或创建通知REST API调用中将include_player_ids设置为userId。

非常感谢。只有一个小问题,OneSignal.sendTag("is_test", "true") - 参数是键和值。键是设备ID吗?那么值是什么? - Axil
@Axil sendTags 允许您为用户分配自定义键/值对。因此,您可以执行诸如sendTag(“age”,“31”)或sendTag(“city”,“San Francisco”)之类的操作,或在这种情况下执行sendTag(“is_test”,“true”)。接下来,您可以将通知定向到具有特定标签和值或不具有特定标签和值的用户。 - Gdeglin
谢谢。实际上,我找不到从服务器端获取由移动设备发送的标签中的player_id/设备ID的部分。 - Axil
获取用户ID: let status: OSPermissionSubscriptionState = OneSignal.getPermissionSubscriptionState() status.subscriptionStatus.userId - Phil
1
我不明白的一件事是,你怎么能获取别人的玩家ID呢?这不仅仅存储在他自己的设备上吗?所以getidsavailable只会返回你自己的ID? - Emil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接