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:
、リモート通知を受信するたびに、ユーザーが何かを行う前にバックグラウンドで呼び出すことができることです。
では、ユーザーが通知のアクション ボタンを使用してアプリを開いたことをどのように知ることができるでしょうか?