java - 如何为应用用户注册/订阅 OneSignal 中的主题?
问题描述
我正在使用 OneSignal.com 平台发送推送。我想为应用用户注册/订阅天气、运动、技术等类别... Firebase SDK 中有一个方法:
Messaging.messaging().subscribe(toTopic: "weather") { error in
print("Subscribed to weather topic")
}
但我在 OneSignal 中找不到该方法。如何为用户订阅类别?(可以不止一个)
解决方案
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 的这篇文章。
推荐阅读
- javascript - AFRAME - 叠加场景
- android-studio - 无法确定任务 ':base:builder:sourcesJar' 的依赖关系
- python-3.x - For 循环迭代没有预期的影响
- powershell - System.Data.DataTable 到数组列表
- javascript - JavaScript 错误:跨域读取阻止 (CORB) 阻止了跨域响应
- glibc - 在其他机器上运行预编译程序时出现“非法指令”
- jquery - 如何限制clockpicker.js中的分钟选择
- python - 为什么 pygame 为我冻结?
- sql - 数据库查询中的按比例计算
- java - 正则表达式匹配双引号之外的所有单词