所有
我发送带有数据字符串的推送通知。 例如:
{
"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%@“,饮料,地址
这有可能吗?如果是这样的话:怎么样?
答案 0 :(得分:2)
不能以你想要的方式做到这一点。 iOS处理推送通知,您的应用程序不会影响通知的显示方式。 iOS将只显示您在通知中发送的内容。
但是,您可以使用localization来实现您的目标:
"alert" : { "loc-key" : "ALERT_FORMAT", "loc-args" : [ "FriendsName", "pink"] },
ALERT_FORMAT
是Localizable.strings
文件中的本地化:
"ALERT_FORMAT" = "Color from %@ is %@"
但您必须更改服务器上的通知类型,因此您向其发送邀请通知时,您需要更改服务器上的通知。
所以你会发送这样的邀请函:
"alert" : { "loc-key" : "ALERT_INVITE", "loc-args" : [ "drinks", "adress"] },
ALERT_INVITE
是Localizable.strings
文件中的本地化:
"ALERT_INVITE" = "Invite for %@ at %@"
因此推送通知的JSON应如下所示:
{
alert" : {
"loc-key" : "ALERT_FORMAT",
"loc-args" : [ "FriendsName", "pink"]
}
}