アプリでは、予定されたローカル通知をアラームとして送信します。リマインダを完了したものとしてマークするボタンが通知にあります。ローカル通知を処理する際に、通知が完了したことを示すAPIリクエストが送信されます。エラーの場合にローカル通知を再送信
HTTPリクエストが失敗した場合、ローカルプッシュ通知を再送するには、1)元のアクションが失敗したことをユーザーが認識している、2)再試行できるという2つの理由があります。
application:handleActionWithIdentifier:for:completionHandler
コールバックでローカル通知を送信しようとしました。再試行通知は現在時刻から約5秒間スケジュールされます。これはシミュレータ上で動作しますが、実際のデバイスでは動作しません。
私はアプリのapplication:didFinishLaunchingWithOptions:launchOptions
メソッドでapplication.beginBackgroundTaskWithName("showNotification", nil)
を追加しようとしましたが、これはデバイス上で動作するようにします。しかし、私はそれが強固な解決策ではないと懸念しています。私たちのリマインダ通知は、いつでも送信することができ、beginBackgroundTaskWithName
のドキュメントには、一時的にしか動作しないことが記載されています。
私の質問は次のとおりです。実際にiOSでローカル通知を再送信する方法はありませんか?一方、もしあれば、どうすればいいのですか?
をなぜ失敗にローカル通知を使用する代わりに、障害対応ブロックの上に直接、再試行フローを実行したいですか? – piyuj
'現在時刻から約5秒間再試行通知をスケジュールする'この時点でアプリをアクティブにしていますか? –
@piyuj自動再試行を行うネットワークスタックはありません。さらに、リクエストは偶数ではないPOSTです –