私はすでに関連する質問をしました: Appleアプリがプッシュ通知を受け取るかどうかを知るためのオプションはありますか?
そして、アプリケーションがバックグラウンドにあり、ユーザーがそれを開いていないときにプッシュ通知がiPhoneに来るかどうかを知ることはできないという答えを得ました...
しかし、私は何か面白いものを見つけました。WhatsAppで2台のiPhoneを持っています。最初のiPhoneでWhatsAppを開いて終了し(WhatsAppは現在バックグラウンドにあります)、2番目のiPhoneで、WhatsAppマッサージを最初のiPhoneに送信します。
WhatsAppのプッシュ通知が最初のiPhoneに届くと、メッセージの近くに2つの「V」(記号)が表示されます(プッシュ通知は開きません)。この後、最初のiPhoneでインターネットと3Gを閉じ、2番目のiPhoneでWhatsAppメッセージを最初のiPhoneに再度送信します。 -そして私はマッサージの近くに1つの「V」しか見ることができません(読んでいない-プッシュ通知を受け取らない)。
これで、最初のiPhoneでインターネットを再度有効にした後、プッシュ通知を受け取った後、2つの「V」が表示されます(ここでも、プッシュ通知を開きません)。
それはどのように機能しますか? WhatsAppがバックグラウンドで動作しているときにiPhoneがプッシュ通知を受け取るかどうかをWhatsAppはどのように知るのですか?
WhatsAppアプリケーションを閉じた状態のiPhone 受信者とメッセージを送信する他のiPhone --送信者と呼び、一般的な用語を使用しますアプリケーションの代わりにWhatsApp
送信者のアプリケーションは、プッシュ通知が受信者に到達したことを知ることができません。これは、プッシュ通知の性質によるものです。
ただし、送信者は別の-プッシュ通知ではなく、優先プロトコル-メッセージをアプリケーションに送信することができます受信者それ(受信者))は、アプリケーション固有の方法で送信者に確認することを歓迎します。
だから、私は(私は知りません-私はとにかくWhatsAppと提携していません)あなたが得るdouble-vアイコンはアプリケーションメッセージがレシーバー-でアプリケーションに到達したときであると推測しますプッシュ通知とは何の関係もありません。
あなたが意味するのは、プッシュテクノロジーの基本です:
Whatsappソフトウェアは、受信メッセージを特定のポートでリッスンするバックグラウンドで実行されます。これを継続的に行います。
ところで:
1つのV =モバイルからwhatsappサーバーに配信されるメッセージ
2つのV = whatsappサーバーから受信者のモバイルにプッシュされたメッセージ
青いVは、メッセージが読み取られたことを示します
Whatsappは、その人がメッセージを読んだかどうかを表示しません。メッセージがwhatsappサーバー(1 V)に送信されたときと、個人の電話(2 V)に送信されたときを通知するだけです。ダブルは、メッセージが読み取られたことを意味するのではなく、whatsappが電話に接続し、メッセージを渡すことができたことを意味します。
プッシュ通知を受信した後、受信者はプッシュ通知のペイロードに含まれているURLからデータをダウンロードできます。そのURLを要求することにより、サーバーは受信者がプッシュ通知を受信したことを認識し、このステータスを送信者アプリケーションに渡すことができます。
そのようです:
application:didReceiveRemoteNotification:fetchCompletionHandler: method
を実装し、そのメソッドでペイロードからURLを呼び出します。上記のポスターはすべて正しいです。もう1つ追加するだけです。 Whatsappが最近閉じられた場合でも、バックグラウンドで実行されており、メッセージを受信できます(したがって、返品確認)。ただし、アプリがしばらく使用されないままになっている(または他のアプリの優先度が高い)と、Whatsappが終了すると、着信メッセージを受信できなくなり、受信を返しません。
もちろん、観察者は、アプリを開いてから新しいメッセージが表示されるまでにわずかな遅れがあることに気付くでしょう。これは、メッセージがバックグラウンドでダウンロードされず、アプリを開いたときにのみダウンロードされることを示唆しているようです。では、バックグラウンドで実行しているときにレシートが返されるのはなぜですか?