1

これは本当に迷った!

Adobe AIR iOS アプリがあり、RemoteNotifier を使用して PushNotifications をサブスクライブしています。詳細http://www.adobe.com/devnet/air/articles/ios-push-notifications.html

私は次のリスナーを持っています。

remoteNotifier.addEventListener(RemoteNotificationEvent.TOKEN, onToken);

iPod を工場出荷時の設定にリセットし、(アドホック ディストリビューションを使用して) アプリを再インストールした後、プロンプトが表示されたらプッシュ通知の[許可しない] をクリックします。

その後、 RemoteNotificationEvent.TOKENを受信しないことが判明したため、アプリは基本的にそれを待ってハングします。

SettingsNotificationsに移動して遊んでみると

  • アラート スタイルを [なし]から[アラート] に切り替えます。
  • その後、再びNoneに戻ります(そのまま)

問題なく戻ってアプリを起動できることがわかりました。初めてのユーザー フローでは、 TOKENが返されないようです。

何か案は?他の誰かがこの動作を見たことがありますか? または、これをどのように処理すればよいか知っていますか?

ありがとう!

4

1 に答える 1

0

私が間違っている場合は、誰かが私を修正してください。

私が知る限り、ユーザーが"許可しない"をクリックしてもRemoteNotificationEvent.TOKENは取得されません。

設定で遊んでアプリを再起動した後、設定した通知設定に関係なく、 RemoteNotificationEvent.TOKENを取得する方法については、まだ不明な理由があります。しかし、もしかしたらそれが本来あるべき姿なのだろうか?

したがって、実際には、最初の画面をロードする前にそのRemoteNotificationEvent.TOKENを待たないようにフローを変更する必要があります。TOKENが返された場合は返されますが、そうでない場合は、ユーザーが [許可しない] をクリックしたことを意味し、 PUSH 通知を送信する必要がないため、大したことではありません。

アプリを再起動するたびに、サブスクライブしてTOKENを取得するための呼び出しを行います。ユーザーが電話の設定で通知を有効にする場合、プッシュ通知を送信するための TOKEN ID も持っています。

ただし、これに関する唯一の問題は、ユーザーが電話の設定を介して通知をオンに変更し、( TOKENを取得するために) アプリを再起動しない場合、デバイスがプッシュ通知を受け取らないことです。

これを処理する方法がわかりませんか?

于 2013-03-21T09:43:55.330 に答える