14

問題: アプリが通知センターに表示されず、インストールが完了した直後にプッシュ通知を受信できず、アプリが 経由でプッシュ通知に登録されregisterForRemoteNotificationTypes:ます。

詳細:

  • アプリは通常、デバイスの再起動後に通知センターに表示され、その後はすべて正常に機能します。
  • アプリをインストールしてAPNsに登録した直後に、通知センターにアプリが表示されることがあります(まだ確認できていませんが、そのような状況に遭遇したと思います)。
  • アプリはregisterForRemoteNotificationTypes、ユーザーがログインするたびに、ユーザーがログアウトするたびに、それぞれビット マスク ( UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound) とを使用してメソッドを呼び出しますUIRemoteNotificationTypeNone
  • enabledRemoteNotificationTypes正しい値を返します。
  • 最初はunregisterForRemoteNotificationsログアウト時にこの方法を使用していましたがregisterForRemoteNotificationTypes:UIRemoteNotificationTypeNone、これが問題の原因である可能性があるという疑いがあるため、に変更しました。
  • この問題は、開発ビルドとアドホック ビルドの両方で発生し、アプリが xcode 経由でインストールされているか itunes 経由でインストールされているかに関係なく発生します。

どんな考えやアドバイスも大歓迎です。ありがとうございました!

4

3 に答える 3

17

これは、私のデバイスの一部で発生していました。(通知センターに表示されず、プッシュを受信しません。)

次のようにして修正しました:

  • アプリを削除する
  • 関連するすべてのプロファイルをデバイスから削除します。[設定] アプリ > [一般] > [プロファイル] に移動し、アプリに関連する各プロビジョニング プロファイルをタップして、[削除] をタップします。設定が存在しない iOS 8/9 では、XCode > Windows > Devices > select device > Show provisioning profiles... > 次にプロファイルを削除します。
  • 電話の電源をオフにしてから、もう一度オンにします。
  • 5分待ちます
  • アプリを再インストールすると、プロビジョニング プロファイルが自動的にインストールされます。
  • アプリを起動し、登録させます。
  • プッシュ通知をもう一度テストする

私たちの場合、すぐには機能しなかったので、数分待ってください。

于 2013-02-08T03:19:06.577 に答える
0

Apple のドキュメントから、ログイン/ログアウト時のアプリの登録と登録解除にそれぞれ問題がある可能性があります。

アプリケーションは、起動するたびに登録し、そのプロバイダーに現在のトークンを提供する必要があります。

登録解除については不明です。プログラミング ガイドでは登録解除について言及していません。おそらく、アプリは登録解除されるべきではなく、ユーザーがログインしているかどうかに応じてプッシュ通知を送信するか送信しないかによって、サーバーがそれを処理する必要があります。これは私が過去に行った方法であり、この問題を経験したことはないので、このアプローチはあなたにも当てはまるかもしれません.

于 2013-02-08T02:38:00.053 に答える
0

さて、私もこの問題を抱えています。アプリケーションが以前のインストールでアンインストールする前に unregisterForRemoteNotifications を使用していたことがわかりました。

さらに、アプリケーションを再度インストールしてログインし、リモート通知に登録すると、この問題が発生します。

最初のインストール(iOSデバイスのリセット後にインストール)でも発生しました。ログイン前に unregisterForRemoteNotifications を使用し、ログイン操作で登録すると、この問題が発生します。

この問題が発生したため、iOS デバイスを再起動する必要があります。

unregisterForRemoteNotifications については、この問題を止めることはできませんでしたが、問題が発生する可能性を減らすことはできました。その方法は次のとおりです。

以前のインストールでデバイス トークンがプロバイダーから削除されなかった場合は、ログイン前に現在のインストールで unregisterForRemoteNotifications を使用します。それ以外の場合は、unregisterForRemoteNotifications を使用しないでください。

于 2013-07-04T04:15:27.127 に答える