Onesignar 从通知 android 中获取标签?

Onesignar get tags from notification android?

我正在使用 Onesignar 的其余 api 向 android 设备发送通知,我想像这样向用户发送附加数据

{"user_level","10"}

我正在使用标签,但我无法使用函数检索此标签

 OneSignal.getTags(new OneSignal.GetTagsHandler() {
                    @Override
                    public void tagsAvailable(JSONObject tags) {
                        Log.d("debug_Tag", tags.toString());
                    }
                });

它总是return空对象。我如何使用 Onesignar 从通知中检索标签或将附加数据设置为通知?

如果您想通过通知传递数据,您需要在 OneSignal create notification REST API POST 调用上设置 data 字段。

{
  "app_id": "5eb5a37e-b458-11e3-ac11-000c2940e62c",
  "included_segments": ["All"],
  "data": {"user_level","10"},
  "contents": {"en": "English Message"}
}

或 OneSignal 控制面板 "New Message" 页面选项下的 "Additional Data" 字段。

然后您可以在您的应用程序代码中调用 setNotificationOpenedHandler 以将 NotificationOpenedHandler 添加到您的应用程序,这将触发 notificationOpened

  public void onCreate() {
      super.onCreate();

      OneSignal.startInit(this)
        .setNotificationOpenedHandler(new ExampleNotificationOpenedHandler())
        .init();
   }

  // This fires when a notification is opened by tapping on it or one is received while the app is running.
  private class ExampleNotificationOpenedHandler implements NotificationOpenedHandler {
    @Override
    public void notificationOpened(String message, JSONObject additionalData, boolean isActive) {
      try {
        if (additionalData != null) {
          Log.d("OneSignalExample", "Full additionalData:\n" + additionalData.toString());
        }
      } catch (Throwable t) {
        t.printStackTrace();
      }
    }

additionalData 将包含您在创建通知时在 data 字段中设置的内容。

OneSignal.getTags 仅获取您在 OneSiganal.sendTags.

用户上设置的标签值