2

全部,

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

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

或者

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

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

这可能吗?如果是这样:如何?

4

1 回答 1

2

不,这不可能以您想要的方式进行。iOS 处理推送通知,您的应用程序不会影响通知的呈现方式。iOS 只会显示您在通知中发送的内容。

但是,您可以使用本地化来实现您想要的:

"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"]
        }
}
于 2013-08-28T09:07:22.127 回答