6

didReceiveRemoteNotification によると、バックグラウンドで、ユーザーがプッシュ通知のアクション ボタンをクリックして (または、プッシュ通知がユーザーにどのように表示されるかに応じて、プッシュ通知をスワイプして) アプリを開く操作を実装-application:didReceiveRemoteNotification:してからチェックすることで処理できました。メソッド内で、アプリケーションapplicationStateがアクティブでなかったかどうか。

iOS 7 には新しいremote-notificationバックグラウンド モードがあり、リモート通知がユーザーに表示されたときにアプリがバックグラウンド フェッチを実行できます (ユーザーが通知に対して何もしなくても)。このモードをサポートするには、-application:didReceiveRemoteNotification:fetchCompletionHandler:メソッドを実装する必要があります。

のドキュメントに-application:didReceiveRemoteNotification:は、アプリケーション デリゲートがapplication:didReceiveRemoteNotification:fetchCompletionHandler:メソッドを実装する場合、「アプリ オブジェクトはこのメソッドではなくそのメソッドを呼び出す」と記載されています。つまり-application:didReceiveRemoteNotification:、呼び出されないため、リモート通知を処理するために使用できなくなります。

おそらく処理ロジックを に配置する必要application:didReceiveRemoteNotification:fetchCompletionHandler:がありますが、それを処理するための以前のトリックはもはや意味がありません。以前は-application:didReceiveRemoteNotification:、アプリがアクティブでないときに が呼び出される唯一の方法は、ユーザーが通知のアクション ボタンをクリックして、アプリを開きます。remote-notificationただし、バックグラウンド モードの要点はapplication:didReceiveRemoteNotification:fetchCompletionHandler:、リモート通知を受信するたびに、ユーザーが何かを行う前にバックグラウンドで呼び出すことができることです。

では、ユーザーが通知のアクション ボタンを使用してアプリを開いたことをどのように知ることができるでしょうか?

4

2 に答える 2

6

あなたはまだアプリケーションの状態をチェックしますapplication:didReceiveRemoteNotification:fetchCompletionHandler:

  • UIApplicationStateBackground- アプリはバックグラウンドでプッシュ通知を受信して​​います
  • UIApplicationStateInactive- ユーザーが通知をタップしてアプリを開いている
于 2013-11-22T15:35:16.667 に答える
0
于 2013-12-17T08:15:19.593 に答える