5

基本的に、同じアプリケーションで複数のプッシュ通知を iOS の通知トレイに表示したいと考えています。

このシナリオは、プッシュ通知が APNS 経由でトリガーされている間、データがオンになっている場合に機能しますが、オフラインになってしばらくしてから戻ってきた場合に備えて、最新のものしか受信されません。この機能は、APNS のドキュメントで確認されています。

ただし、これはWhatsAppで機能したものです。

  1. データ接続をオフにしました
  2. WhatsAppにいくつかのメッセージを送信しました
  3. データ接続をオンにしました
  4. Apple の通知トレイで受信した複数のプッシュ通知を見た

このシナリオはどのように機能していますか? これに APNS を使用できますか? はいの場合、どのように?

WeChat での複数のプッシュ通知のサンプル画像をご覧ください。

4

3 に答える 3

5

あなたが質問に書いたように、これはApple Docsに記載されています:

短期間に同じデバイスまたはコンピューターに複数の通知を送信している場合、プッシュ サービスは最後の通知のみを送信します。

リンク

あなたが説明していることが機能する唯一のシナリオは、whatsApp がそれらを取得している間にバックグラウンドで開いていた場合ですpush notifications。そうすれば、whatsApp はそれらを次のように処理しlocal notifications、それらすべてを通知センターに表示します。WhatsApp が閉じられた場合、他のアプリと同様に最後の通知のみが表示されます。

これを簡単にテストできます:

  1. WhatsApp を終了し、電源を入れAirplane modeます。
  2. デバイスに 1 から 5 までの 5 つのメッセージを送信します。
  3. デバイスの電源Airplane modeを切り、ロックします。
  4. notifications center. _

これがwhatsAppがそれを機能させる方法です:

whatsApp がバックグラウンドにある間、単一のプッシュ通知が受信されます (ユーザーが送信した最後の通知、この例では「5」)。そのメッセージはユーザーには表示されません。

whatsApp はメソッドでそれを受け取りapplication:didReceiveRemoteNotification:fetchCompletionHandler:、ユーザーが受け取っていない「5」より前の通知があるかどうかをサーバーに対してチェックします。その場合、彼らはサーバーからそのデータを引き出し、それを使用してユーザーに提示しますlocal notifications。これは基本的にデータを提示する方法であり、APNS とはまったく関係ありません。

于 2015-02-16T09:15:55.087 に答える
-1

プッシュ通知のトラブルシューティングで説明されています。「一部の通知を受信しましたが、すべてではありません」セクションを確認してください。

于 2015-02-16T06:35:56.507 に答える
-1

説明したように、これらのプッシュ通知を制御することはできません。

ただし、iOS7 から新しいバックグラウンド実行モード ( remote-notification ) を使用すると、プッシュが受信されたときにアプリがシステムによって起動され、データを処理してからスリープ状態に戻ることができます...

@Segevが言ったように、その方法を使用してプッシュ通知を(サイレントに)受信し、代わりに独自のローカル通知をトリガーします。ここで UIBackgroundModes を参照してください

于 2015-02-22T15:06:08.217 に答える