是身体和LOC-ARGS以下结构在同一个通告的负载有效吗?(Is the following str

2019-10-17 20:23发布

将以下有效载荷通知引起任何问题,如果你有身体和LOC-指定参数和LOC键在同一有效载荷?

{"aps":{"alert":{"body" : "Bob wants to play poker", "loc-key":"general","loc-args":["Test DEFAULT."]},"badge":1,"sound":"default"}}

我之所以有它成立这样。 是,我不知道,如果通知,只是有一个身体将是应用程序中处理,所以它会使用局部LOC-ARGS与在本地化的字符串以下关键衣被合计:

"general"="%@";

Answer 1:

有两个选项来定位嵌入在推送通知的警报消息。 一个是本地化的服务器上,并发送本地化消息作为字符串值alert键。 例如:

{"alert": "A localized sentence."}

或者,如果你想还设置了启动图像和/或有警报的视图按钮读比“查看”以外的东西,你会替换的字符串值alert借助词典。 在这种情况下,字符串值应的值body字典中。 例如:

{'alert': {'body: "A localized sentence.", action-loc-key: "...", launch-image: "..."' }}

该文件警告说,如果你只有body在字典中键,不要使用字典。 相反设置的值body作为字符串值alert

另一种选择是使用loc-keyloc-args对,有设备上的定位发生。

虽然我还没有证实哪一个iOS的默认如果双方bodyloc-key是存在于alert字典,我想它会选择一个而忽略其他。 有人访问到工作推通知dev的设置可以验证这一个。

最终,一个可以从推断文档该bodyloc-key应该在异或关系来使用。 无论是一个或另一个,但不能同时使用。



Answer 2:

我做了一些测试。

例如发送

{
    "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-密钥应在异或关系中使用的文档推断。 无论是一个或另一个,但不能同时使用。

大段引用

根据这个帖子 ,如果钥匙丢失了密钥。 这就是为什么“身体”总是被忽略,或者是一个或另一个。



Answer 3:

我不是50尚未所以我不能发表评论,但跟进的@kadam回答,只是以供将来参考那些谁将会参观这个问题。

虽然我还没有证实哪一个iOS的默认,如果身体和LOC键出现在警报字典,我想它会选择一个而忽略其他。 有人访问到工作推通知dev的设置可以验证这一个。

我已经尝试过了,它默认为禄键的值,如果对应用程序本身的值。 如果没有那么它使用身体的价值。



文章来源: Is the following structure with body and loc-args in the same notification payload valid?