将以下有效载荷通知引起任何问题,如果你有身体和LOC-指定参数和LOC键在同一有效载荷?
{"aps":{"alert":{"body" : "Bob wants to play poker", "loc-key":"general","loc-args":["Test DEFAULT."]},"badge":1,"sound":"default"}}
我之所以有它成立这样。 是,我不知道,如果通知,只是有一个身体将是应用程序中处理,所以它会使用局部LOC-ARGS与在本地化的字符串以下关键衣被合计:
"general"="%@";
有两个选项来定位嵌入在推送通知的警报消息。 一个是本地化的服务器上,并发送本地化消息作为字符串值alert
键。 例如:
{"alert": "A localized sentence."}
或者,如果你想还设置了启动图像和/或有警报的视图按钮读比“查看”以外的东西,你会替换的字符串值alert
借助词典。 在这种情况下,字符串值应的值body
字典中。 例如:
{'alert': {'body: "A localized sentence.", action-loc-key: "...", launch-image: "..."' }}
该文件警告说,如果你只有body
在字典中键,不要使用字典。 相反设置的值body
作为字符串值alert
。
另一种选择是使用loc-key
, loc-args
对,有设备上的定位发生。
虽然我还没有证实哪一个iOS的默认如果双方body
和loc-key
是存在于alert
字典,我想它会选择一个而忽略其他。 有人访问到工作推通知dev的设置可以验证这一个。
最终,一个可以从推断文档该body
和loc-key
应该在异或关系来使用。 无论是一个或另一个,但不能同时使用。
我做了一些测试。
例如发送
{
"aps": {
"alert": {
"body": "hello world!",
"loc-args": ["andy", "my text"],
"loc-key": "comment"
}
},
"sound": "default",
"extras": {}
}
在我的设备我在LOC文件,看起来像一个字符串:
"comment" = "%@ has comment %@";
这样我收到的通知是:
Andy has comment my text
现在,我已经发这样一个新的通知:
{
"aps": {
"alert": {
"body": "hello world!",
"loc-args": ["andy", "my text"],
"loc-key": "does_not_exist"
}
},
"sound": "default",
"extras": {}
}
与LOC键不存在,而我收到的通知
does_not_exist
从而在噶当派他的回答说:
最终,一个可以从身体和LOC-密钥应在异或关系中使用的文档推断。 无论是一个或另一个,但不能同时使用。
大段引用
根据这个帖子 ,如果钥匙丢失了密钥。 这就是为什么“身体”总是被忽略,或者是一个或另一个。
我不是50尚未所以我不能发表评论,但跟进的@kadam回答,只是以供将来参考那些谁将会参观这个问题。
虽然我还没有证实哪一个iOS的默认,如果身体和LOC键出现在警报字典,我想它会选择一个而忽略其他。 有人访问到工作推通知dev的设置可以验证这一个。
我已经尝试过了,它默认为禄键的值,如果对应用程序本身的值。 如果没有那么它使用身体的价值。
文章来源: Is the following structure with body and loc-args in the same notification payload valid?