1

'data'と 'notification'ペイロードの両方を含むメッセージを送信する必要があります。このメッセージは、iOSまたはAndroidデバイスから参加できるトピックに送信されます。onMessageReceivedのデータと通知ペイロードの両方を持つメッセージを処理する

Androidでは、通知とデータペイロードの両方のメッセージがの場合、常にがシステムトレイではなくonMessageReceivedで受信される方法がありますか?アプリをバックグラウンドで使用している場合など。

それが助け場合のiOS加入たぶん

+0

[docs](https://firebase.google.com/docs/notifications/android/console-device#receive_and_handle_messages)から、バックグラウンドでメッセージを受け取ることは、Android自体の動作です。あなたがそれを変更することができるかどうかは分かりません。代わりに私が考えているのは、システムトレイ/エキストラインテントをチェックして、あなたの 'onMessageReceived()'と同じメソッドにフローを向ける方法があるかもしれないということです。ちょっと思ったよ。 –

答えて

0

のために必要な通知ペイロードが、これは私がのために通知を送信するために使用(C#)のオブジェクトであるので、私は(唯一の「データ」のペイロードを送信する)の通知ペイロードを削除することはできません。 IOSとAndroidの両方。そのコードを書いている時点では

internal class jsonObj 
    { 
     //public bool delay_while_idle { get; set; } 
     public data data { get; set; } 
     public notification notification { get; set; } 
     public string to { get; set; } 
     public string priority { get; set; } 
    } 

    internal class data 
    { 
     public int Id { get; set; } 
     public int commentId { get; set; } 
     public string type { get; set; } 
     public string DisplayName { get; set; } 
     public string licensePlateCode { get; set; } 
     public int licensePlateId { get; set; } 
     public string text { get; set; } 
    } 

    internal class notification 
    { 
     public string title { get; set; } 
     public string body { get; set; } 
     public string sound { get; set; } 
     public string badge { get; set; } 
     [JsonProperty("content-available")] 
     public string contentAvailable { get; set; } 
    } 

は、私はもう推奨されませんアンドロイドの古いWakefulBroadcastReceiverIntentServiceを、使用していました。興味を持っている場合しかし、それはthis question

EDITのように見えた: OPはthis post on githubについてコメントしています。そこには同じ問題がまだ説明されていません(2016年9月)。回避策はそこにあります、あなたはIOSとAndroidのための別の要求を送信する必要があります。

+1

この問題でこの問題が見つかりました。 これは、「現在の実装では、iosの表示通知とアンドロイドの静かな通知であるメッセージを同時に送信することができません。 ref:https://github.com/google/gcm/issues/63 だから、今は唯一可能な解決策は、iOSとAndroidの間に別のペイロードを送信することだと思います。 – nesniv

関連する問題