didReceiveLocalNotification が呼び出されたときに、ユーザーがアプリの外部から通知をクリックしたためなのか、アラームが発生したときにアプリがフォアグラウンド アプリだったために呼び出されたのかを知りたいです。違いを知っておくことは重要です。なぜなら、ユーザーはすでに何らかの情報を含むアラートを受け取っていて、再度それを必要としない場合もあれば、その情報をまだ受け取っていない場合もあるためです。
現在、applicationWillEnterForeground でフラグを設定し、applicationDidBecomeActive でクリアしています。didReceiveLocalNotification が呼び出されたときにフラグが設定されている場合、アプリの外部からのものであり、ユーザーは何らかの形でシステム通知を既に見ていることがわかります。ただし、ユーザーが通知を受け取ったが、まだクリックしていない場合 (つまり、プルダウン通知領域にあるだけ)、このフラグが設定されないことに気付きました。アプリが前景。この場合、私のアプリは既にフォアグラウンドにあるため、フラグが設定されています。
理想的には、この情報を取得するためにチェックできる UILocationNotification に設定されたプロパティがあります。
私は fireDate を使用して、それが 1 秒または 2 秒未満であり、フラグが設定されていない場合、後でではなくリアルタイムで通知を取得していると言うことができると思います..可能。
編集:保存をクリックしたときに、「関連」セクションに次のリンクがあることに気付きました:
iOS - アプリケーションで UILocalNotification を区別する必要があります:didReceiveLocalNotification:
最初にもっと検索せずに重複した質問を投稿して申し訳ありません(本当に検索しました!)。うまくいけば、これはより良い答えを得るでしょう。なぜなら、その答えには確かな答えがないからです。