1

body と loc-args と loc-key が同じペイロードにある場合、次のペイロード通知は問題を引き起こしますか?

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

このように設定した理由。アプリ中に本文を入れるだけの通知が処理されるかどうかわからないので、ローカライズ可能な文字列の次のキー値でローカライズされた loc-args を使用します。

"general"="%@";
4

3 に答える 3

6

私はいくつかのテストを行いました。

たとえば、送信

{
    "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": {}
    }

存在しないロックキーを使用しており、私が受け取っている通知は

does_not_exist

カダムが彼の答えで言ったように:

最終的には、文書から、 body と loc-key を排他的または関係的に使用する必要があると推測できます。どちらか一方ですが、両方ではありません。

引用符

この投稿によると、キーがない場合はキーが使用されます。そのため、'body' は常に無視され、いずれか一方または他方になります。

于 2016-01-09T16:30:51.603 に答える
0

プッシュ通知に埋め込まれたアラート メッセージをローカライズするには、2 つのオプションがあります。1 つは、サーバー上でローカライズし、ローカライズされたメッセージをalertキーの文字列値として送信することです。例えば:

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

必要に応じて、起動イメージも設定したり、アラートの表示ボタンに「表示」以外のものを読み取らせたりする場合は、文字列値をalert辞書に置き換えます。この場合、文字列値はbodyディクショナリの値である必要があります。例えば:

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

ドキュメントbody、辞書にキーしかない場合は辞書を使用しないことを警告しています。代わりに、の値をbodyの文字列値として設定しますalert

もう 1 つのオプションはloc-keyloc-argsペアを使用して、デバイスでローカリゼーションを実行することです。

bodyとの両方loc-keyが辞書に存在する場合、iOS のデフォルトがどちらになるかは確認していませんがalert、一方を選択して他方を無視すると思います。動作中のプッシュ通知開発セットアップにアクセスできる人は、どれを確認できますか.

最終的に、ドキュメントから、排他的または関係で使用されるべきであるbodyと推測できます。loc-keyどちらか一方ですが、両方ではありません。

于 2013-05-15T19:01:10.753 に答える