iOS推送通知警报消息基于警报中的数据

时间:2013-08-28 09:05:22

标签: ios objective-c alert apple-push-notifications

所有

我发送带有数据字符串的推送通知。 例如:

{
    "aps": {
         "alert": "1,FriendsName,3,4,pink, green",
         "sound": "default"
    }
}

{
    "aps": {
         "alert": "2,drinks, adress",
         "sound": "default"
    }
} 

现在,我希望警报中的消息根据字符串中的值显示文本。 所以(伪代码): 如果“alert”中的第一个字符= 1 => “alert = @”来自%@的颜色是%@“,friendsName,粉红色 如果“alert”中的第一个字符= 2 => `“alert = @”邀请%@ at%@“,饮料,地址

这有可能吗?如果是这样的话:怎么样?

1 个答案:

答案 0 :(得分:2)

不能以你想要的方式做到这一点。 iOS处理推送通知,您的应用程序不会影响通知的显示方式。 iOS将只显示您在通知中发送的内容。

但是,您可以使用localization来实现您的目标:

"alert" : { "loc-key" : "ALERT_FORMAT", "loc-args" : [ "FriendsName", "pink"] },

ALERT_FORMATLocalizable.strings文件中的本地化:

"ALERT_FORMAT" = "Color from %@ is %@"

但您必须更改服务器上的通知类型,因此您向其发送邀请通知时,您需要更改服务器上的通知。

所以你会发送这样的邀请函:

"alert" : { "loc-key" : "ALERT_INVITE", "loc-args" : [ "drinks", "adress"] },

ALERT_INVITELocalizable.strings文件中的本地化:

"ALERT_INVITE" = "Invite for %@ at %@"

因此推送通知的JSON应如下所示:

{
    alert" : {
            "loc-key" : "ALERT_FORMAT",
            "loc-args" : [ "FriendsName", "pink"]
        }
}