swift - OneSignal - Swift - 接收不同语言的推送通知
问题描述
我正在使用 OneSignal 的 sdk。假设,我有以下用例:
用户 A 用德语使用我的应用程序。他在应用程序内触发一个动作,例如对用户 B 的图像点赞。用户 B 收到关于点赞的推送通知。但是用户 B 使用英语的应用程序。我怎样才能做到这一点?
我的意思是,我可以使用特定语言发送通知消息,但如果用户 B 决定将移动设备的语言更改为土耳其语,那么我必须是 flexibel。
有什么办法可以访问目标设备上的传入推送通知?
目前,我从源设备发送通知的代码如下所示:
public func notifyAboutSubscription(userObject:User, receiverArray:[String]) {
var receiverArray = removeChallengeCreatorTokenFromArray(receiverArray: receiverArray)
notificationTypeService.clearReceiverListForNotificationType(completionHandler: { (clearedReceiverArray) in
receiverArray = clearedReceiverArray
let source = self.determineUserType(userObject: userObject)
// actual message is source + FOLLOW_MESSAGE
OneSignal.postNotification(["contents": ["en": source
+ FOLLOW_MESSAGE], "include_player_ids": receiverArray])
}, receiverList: receiverArray, notificationType: NotificationType.follow)
}
解决方案
好吧。我刚刚找到了解决方案。这是上面修改后的代码:
public func notifyAboutSubscription(userObject:User, receiverArray:[String]) {
var receiverArray = removeChallengeCreatorTokenFromArray(receiverArray: receiverArray)
notificationTypeService.clearReceiverListForNotificationType(completionHandler: { (clearedReceiverArray) in
receiverArray = clearedReceiverArray
let source = self.determineUserType(userObject: userObject)
OneSignal.postNotification(["contents": ["en": source +
" started following you", "de": source + " folgt dir jetzt", "tr": source + " seni takip ediyor"], "include_player_ids": receiverArray])
}, receiverList: receiverArray, notificationType: NotificationType.follow)
}
您基本上为每种语言添加相应的键。根据设备语言,会显示正确的消息。
推荐阅读
- python - 我有两个(.py)文件。当第一个程序结束时,它会自行关闭,然后打开并运行第二个程序文件。我该怎么做?
- java - java.util.ServiceConfigurationError: org.apache.juli.logging.Log: org.eclipse.jetty.apache.jsp.JuliLog 不是子类型
- tensorflow2.x - Tensorflow 2.2 和 cudnn 8.0.3 不能正常工作。它仍然在寻找 cudnn 7.6.5 dll 文件
- kubernetes - Ngnix Ingress Controller 提供长期支持
- c++ - cpp 中的递归函数给出错误“分段错误(核心转储)”
- python - 将每行中的多个 csv 元素读取到单独的列表中
- python - Python sqlite3 和查询优化的问题
- android - Flutter:如何在 Flutter 小部件中显示 Android 片段
- wxwidgets - WxSocket(未在此范围内声明)
- sql-server - 使用 IF-ELSE 语句和 sp_executesql 命令执行动态查询