如何解决:语言内容在Swift中与OneSignal抱怨

时间:2016-11-24 16:47:31

标签: ios swift onesignal

我正在使用OneSignal来管理我的推送通知。对于某些通知,我收到了:

  

通知必须包含英语内容

但我以英语发送所有内容......

/nl/info

谁,副标题,内容是字符串,结果是接收者ID。大多数通知都是发送的,有些人收到了错误消息。

控制台:

oneSignal.postNotification(["headings" : ["en": "\(who)"],
                            "subtitle" : ["en": "\(subtitle)"],
                            "contents" : ["en": "\(contents)"],
                            "include_player_ids": [result]],

我的完整功能:

> ERROR: Create notification failed
Error Domain=OneSignalError Code=400 "(null)" UserInfo={returned={
    errors =     (
        "  Notifications must have English language content"
    );
}}

我错过了什么?非常感谢帮助。

2 个答案:

答案 0 :(得分:4)

我认为4个字段中的一个是错误的。在这种情况下,错误可能意味着它在非英语编码中有非法字符或字符。在发布通知之前打印每个字段。

可能会导致引发此错误的另一种情况,因为其中一个字段为空或为零。在发布通知之前再次将它们打印到日志中。

答案 1 :(得分:1)

您的JSON结构错误。这是一个有效的代码示例:

let objNotif = ["contents": ["en" : message], "include_player_ids": [userID!]]
    //print(objNotif)

    OneSignal.postNotification(objNotif, onSuccess: { (jsonSuccess) in
      //Post OK
      }) { (error) in
      //Error
    }

OneSignal文档: https://documentation.onesignal.com/docs/ios-native-sdk