2017-06-14 42 views
0

多くのユーザー様と同じように、バックグラウンド処理のためにプッシュ通知をアプリに配信する信頼性の高い方法を探していました。ついに私はPushKitを使うことにしました。そして、それはVoIPアプリケーションではないにもかかわらず、AppStoreに受け入れられました。私はAWS SNS(Simple Notification Services)を使ってバックエンドのプッシュ処理を処理しています。ただし、過剰なプッシュ通知を送信すると、VoIP通知配信がiOSによって抑制されます。簡単なテストとして、2〜3分で複数のVoIP通知を送信することができ、迅速に配信し、バックグラウンドでアプリによって処理されます。約10分待ってから(iPadをロックし、アプリケーションがiOSによってスリープ状態になるのを待ってから)、その後のVoIPプッシュはiOSから速やかに配信されません。 AWSは通知を押していますが、iOSは通知をアプリに配信していません。デバイスに接続するとすぐに通知がアプリケーションによって処理されるため、私はこれを知っています。さて、デバイスを接続したままにすると、すべての通知がすぐに配信され、処理されます。iOS VOIPプッシュ通知の信頼性の高い配信

私の質問は次のとおりです。VoIPでこの動作に気付いた人もいますか? iOSのドキュメントではVoIPのプッシュがすぐに配信されることが示されていますが、iOSはプッシュをある期間にわたって「過剰」と見なした場合、スロットルを抑制しているようです。

+0

あなたが解決策を見つけますか? –

+0

私は全く同じ問題があります。私はどこを見るか、何を変えなければならないのか分からない。私はアプリケーションがクラッシュしていないことを100%確信しています。 iOSスロットリングは非常にランダムです。場合によっては8時間後にデバイスが起きることもあります.10分後にデバイスが起きることもあります。 – Maleandr

答えて

0

アプリをバックグラウンドにしておくと、プッシュ通知を受け取ると思います。あなたのアプリが終了したときにプッシュ通知を受け取らないでください。

おそらく、アプリが終了(終了)状態になるとクラッシュする可能性があります。

プッシュキットのサイレント通知は常に優先度が高く、いつもうまく機能します。

原因と解決策を見つけるために以下のことを試してください。

(1)アプリがクラッシュしたりされていないように、殺された(終了)状態でアプリケーションをデバッグ

(2)PEMと証明書(いずれもケースの背景とを使用して、簡単なPHPコードとサイレント通知を送信殺した(終了) )

(3)あなたのアプリがVOIP用に登録​​されていない場合、プッシュキットインテグレーションステップを確認してから、サイレント通知を受信しません。

enter image description here

enter image description here

デバッグデリゲートメソッドの終了状態でpushkit通知

  • 入れデバッグポインタ
  • ゴースキーム
  • を編集するには起動し、オプションを実行して選択します - >エグゼクティブを待つあなたは、デバイス
  • のペイロードを取得したら
  • を発売するeは
  • バックエンドからプッシュキットペイロードを送信し、それが自動的に起動すると、デバッグポインタは、デリゲートメソッドで呼び出します。

enter image description here

Refer some material

+0

それはあなたのために働いたのですか?はいの場合は、回答を受け入れることができます。 – Hasya

+0

PushKitのサイレント通知は信頼できず、うまく機能しません。私はこれを私のVOIPアプリとSkypeでテストしました。 iPadが何らかの形でハイパースリープ状態になっているとき、それらが合理的な時間に配達される保証はありません(そのうちのいくつかは1分遅れていました!)。 – Maleandr

+0

そのように、whatsappとskypeコールやビデオコールの保証はありませんか?しかし、これは動作します。 iOSではpushkitまたはcallkitのいずれかがそのようなシナリオを達成するための依存性のみです。正しく設定されていれば、この作業は完璧ですが、遅延があるかもしれませんが、うまく動作します。 – Hasya

関連する問題