2016-09-04 5 views
2

私は、クラウドメッセージをiOSおよびAndroidデバイスにプッシュするバックエンドサーバーを持っています。メッセージでは、body_loc_key属性はsomeone_commented_momentに設定され、body_loc_argsには3つの文字列引数が含まれています。この値を取り込むときのAndroid上でFirebaseプッシュ通知はbody_loc_keyのAndroid文字列リソースを使用しません

は、アプリの文字列リソースでキーを使用します。 Firebaseドキュメントはbody_loc_keyについて述べています。

だから、Android上で、私はこのエントリが含まれているのstrings.xml:かかわらず、この文字列リソースは、デバイス上に表示される通知に

<resources> 
    [...] 
    <string name="someone_commented_moment"> 
     \@%1$s also commented on \@%2$s\'s moment: %3$s 
    </string> 
    [...] 
</resources> 

をロードされることはありません。

これは完璧に機能し、通知から自分のアクティビティを開始するインテントの通知ペイロードを取得するので、サーバー側でエラーではないと思います。私はここに何かを逃していますかFirebaseが通知本体のローカライゼーションにその文字列リソースを見つけて使用させるために、手動で何かを行う必要がありますか?

編集: 通知をトリガするPythonのコードは次のようになります。self.fcmはタイプpyfcm.FCMNotificationの目的である、とだけでなく、print文で確認されているようnotification.typeは、"someone_commented_moment"に設定されている

self.fcm.notify_multiple_devices(registration_ids=push_tokens, 
           body_loc_args=notification.body_loc_args, 
           message_body=notification.type, 
           data_message=notification.data, 
           body_loc_key=notification.type, 
           sound="default") 

デバイスに送信されるものによって。

+0

通知の作成方法(文字列リソースキーを使用する場所)にスニペットを含めると便利です。 –

+0

@AL。提案をありがとう、私は、通知を送信する責任がPythonコードで質問を更新しました。なぜこれがうまくいかないのか? – Robin

+0

申し訳ありませんが迅速に対応することができませんでした。あなたはすぐにそれを理解することができたようだ。 –

答えて

4

申し訳ありませんでした。手動でFCMサーバーに対してさまざまな要求を試みることで、何が問題になっているのか分かりました。 Androidは、通常のメッセージ本文も設定されている場合、body_loc_keyの文字列リソースを使用しないようです。Androidデバイスにプッシュするときに、サーバーがメッセージ本文を省略できるようにする必要があります。

+0

は同じ解決策を見つけました。しかし、まだ、これに感謝のおかげで! –

関連する問題