首页 > 解决方案 > 如何为应用用户注册/订阅 OneSignal 中的主题?

问题描述

我正在使用 OneSignal.com 平台发送推送。我想为应用用户注册/订阅天气、运动、技术等类别... Firebase SDK 中有一个方法:

Messaging.messaging().subscribe(toTopic: "weather") { error in
  print("Subscribed to weather topic")
}

但我在 OneSignal 中找不到该方法。如何为用户订阅类别?(可以不止一个)

标签: javaandroidiosswiftonesignal

解决方案


OneSginal 有一些类似于 Firebase主题的东西,称为Data Tags,这是一个关于如何添加它们的示例 java 代码:

class ExampleNotificationOpenedHandler implements OneSignal.NotificationOpenedHandler {
  // This fires when a notification is opened by tapping on it.
  @Override
  public void notificationOpened(OSNotificationOpenResult result) {
    JSONObject data = result.notification.payload.additionalData;
    String topic;
    long timestamp = System.currentTimeMillis() / 1000L;
    OneSignal.sendTag("last_notification_click", timestamp);

    if (data != null) {
      notification_topic = data.optString("notification_topic", null);
      if (notification_topic != null)
        OneSignal.sendTag("notification_topic", notification_topic);
    }
  }
}

这是快速代码:

let notificationOpenedBlock: OSHandleNotificationActionBlock = { result in
  let payload: OSNotificationPayload? = result?.notification.payload
  let timestamp = Int(NSDate().timeIntervalSince1970)
  OneSignal.sendTags(["last_notification_click": timestamp])
  
    if let notification_topic = payload.additionalData?["notification_topic"] {
        OneSignal.sendTag("notification_topic", value: notification_topic)
    }
}

查看 OneSignal 的这篇文章


推荐阅读