基于 alert 中数据的 iOS 推送通知警报消息
Posted
技术标签:
【中文标题】基于 alert 中数据的 iOS 推送通知警报消息【英文标题】:iOS push notification alert message based on data in alert 【发布时间】:2013-08-28 09:05:21 【问题描述】:全部,
我正在发送带有字符串数据的推送通知。 示例:
"aps":
"alert": "1,FriendsName,3,4,pink, green",
"sound": "default"
或
"aps":
"alert": "2,drinks, adress",
"sound": "default"
现在,我希望警报中的消息根据字符串中的值显示文本。 所以(伪代码): 如果 "alert" 中的第一个字符 = 1 => "alert = @"来自 %@ 的颜色是 %@",friendsName,粉红色 如果 "alert" 中的第一个字符 = 2 => `"alert = @"Invite for %@ at %@", 饮料, 地址
这可能吗?如果是这样:如何?
【问题讨论】:
【参考方案1】:不,这是不可能的。 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"]
【讨论】:
嗨 Remmelt,感谢您的回复。我会试试这个。我应该在handleBackgroundNotification 中编码吗?如果我想要 2 个警报,我应该创建 ALERT_INVITE1 和 ALERT_INVITE2 我想? ?handleBackgroundNotification
?没听说过这个消息。但是您应该在服务器端进行,只需在您的应用程序中提供使用过的loc-key
Localizable.strings
嗯..我找不到 Localizable.strings 文件...所以我添加了它并在项目中添加了本地化,但现在警报显示“loc-key”:“ALERT_FORMAT” , "loc-args" : [ "FriendsName", "pink"]。我不应该通过其他方法手动添加文件吗?
不只是Localizable.strings
应该可以解决问题,但请确保将其设置为您的应用程序的默认本地化。您应该为您的应用支持的每种语言添加本地化。我还添加了一个示例,说明 JSON 应该如何使本地化通知起作用。
hmm .. 也许我没有在 php 中创建正确的 json ......也许它将“loc-key”和“loc-args”视为 1 个字符串,因此它显示为消息...我会调查的以上是关于基于 alert 中数据的 iOS 推送通知警报消息的主要内容,如果未能解决你的问题,请参考以下文章
在 console.log 或警报中显示 firebase 推送通知?