4

iOS 10を実行している特定のデバイスでプッシュ通知(バックグラウンド)を受信することに問題があります。iOS 10 Firebase通知がバックグラウンドに表示されない

私はアプリを開いても通知は私が実装したバナーを表示します。バックグラウンド状態で何も表示されないのはなぜですか?何かfirebaseドキュメントを読ん

は、私は少し混乱して作られた

次のリンクhttps://github.com/firebase/quickstart-ios/blob/master/messaging/FCMSwift/AppDelegate.swiftにgithubのfirebase例によると、言うdidReceiveRemoteNotification方法ではコメントがあります:

// IFがあなたのアプリが の背景にある間に通知メッセージを受け取っています。//ユーザーがアプリケーションを起動する通知で をタップするまで、このコールバックは起動されません。 // TODO:だから、それは私のアプリがバックグラウンドで動作している 通知

のデータを扱う、AppleはそのデフォルトのiOS通知をするために全体のことをしませんか? content_availableの値がこれに干渉しますか?私は通知とデータ値も送る。ここで

は、私が送っJSONの例である:

{ 
    "content_available": true, 
    "priority": "high", 
    "data": { 
     "post_id": "...", 
     "push_id": "..." 
    }, 
    "notification": { 
     "title": "...", 
     "body": "..." 
    }, 
    "registration_ids": ["xxxx"] 
} 

予想される動作は次のようになります。死ん

  1. アプリケーション:システム:システムは通知
  2. アプリケーションの背景が表示されます通知が表示され、didReceiveRemoteNotificationメソッドが呼び出されます。
  3. アプリがアクティブ:システムは通知を表示せず、didReceiveRemoteNotificationメソッドを呼び出します。

右か?

+1

解決策はまだ見つかりませんか? –

答えて

2

あなたの仮定は、2を除いて正しいです。あなたがcontent_avaialableを設定しても、appleがdidReceiveRemoteNotificationを呼び出さないケースがいくつかあります。

1)デバイスは、低バッテリを持っており、省電力モードになっている

2)アプリケーションは、Appleアプリを覚ますしないことを決定した)

3無効その他の文書化されていないシナリオ「バックグラウンドアプリのリフレッシュ」を持っています。アップルは、性能上の理由から通知を送信しない権利を留保します。

これは、ユーザーが通知をタップすると、必ずdidReceiveRemoteNotificationにペイロードが表示されます。

+0

聖母マリア!私は何世紀にもわたって私のバックグラウンドリフレッシュを無効にしていましたが、それを忘れました...この問題で多くの苦労を... – JRafaelM

関連する問題