プッシュ通知を受け取るアプリを開発しています。状況によってはバックグラウンドフェッチ操作が発生することがあります。したがって、私はremote-notification
私のアプリのバックグラウンド機能を有効にしました。アプリが実行されていないときにプッシュ通知が表示されなくなると消えます
アプリが停止すると、プッシュ通知によってアプリが起動してapplication:didReceiveRemoteNotification:fetchCompletionHandler
が実行され、ホームスクリーンにバナーが表示され、通知をタップしてアプリを起動するまで通知が通知センターに残ります。それは正確に動作するはずです。
アプリが実行されていないときは、ユーザーが強制終了しない限り(apple's documentationを参照)、アプリはapplication:didFinishLaunchingWithOptions
とapplication:didReceiveRemoteNotification:fetchCompletionHandler
を実行します。ホームスクリーン上にバナーが表示されますが、通知は消えます。それは通知センターに残っていません。さらに、デバイスがロックされていると、警告音が鳴り終わる前に通知が消えることがあります。
興味深いことに、リモート通知バックグラウンドモードを無効にすると、すべて正常に動作します。その状況では、プッシュ通知が到着したときにアプリが起動されません。
リモート通知バックグラウンドモードがオンで、着信通知が実行されていないアプリを起動すると、通知が消えないようにするにはどうすればよいですか?アプリがバックグラウンドで起動されていることを通知する何かをapplication:didFinishLaunchingWithOptions
に含める必要があります。通知を破棄しないでください。
'application:didReceiveRemoteNotification:fetchCompletionHandler:'メソッドで補完ハンドラを正しく呼び出していますか? – rmaddy
はい、そうではありませんでした。私は実際に問題を理解しました。私は時間があるとすぐに回答を掲示します。基本的に、私の 'application:didFinishLaunchingWithOptions'には私が使っているSDK(Kinvey)を使ってプッシュを登録する行がありました。私は何が起こるか正確にはわからないが、それが呼び出されると、アプリはプッシュのために再登録するように見え、それは入ってくるプッシュを破棄する。だから私は、アプリがバックグラウンドで起動され、それを解決したときにそれを避けるためにいくつかの行を書きました。 – ConfusedByCode