在我们的应用程序中,我们发送预定的本地通知作为提醒。通知上有一个按钮可将提醒标记为已完成。当我们处理本地通知时,我们会发送一个API请求来标记提醒已完成。发生错误时重新发送本地通知
在HTTP请求失败的情况下,我们希望重新发送本地推送通知,原因有两个:1)用户知道原始操作失败,2)让他们可以重试。
我们尝试在application:handleActionWithIdentifier:for:completionHandler
回调中发送本地通知。我们从现在开始计划重试通知约5秒钟。它在模拟器上工作,但它不适用于实际设备。
我已经尝试在应用程序的application:didFinishLaunchingWithOptions:launchOptions
方法中添加application.beginBackgroundTaskWithName("showNotification", nil)
,这确实可以使其在设备上工作。但是,我担心这不是一个可靠的解决方案。我们的提醒通知可以在一天中的任何时间发送,beginBackgroundTaskWithName
的文档说它只能暂时工作。
所以我的问题是:真的没有办法重新发送iOS上的本地通知?另一方面,如果有,我该怎么做?
为什么要使用本地通知失败,而不是直接故障处理块上执行的重试流? – piyuj
'我们安排从现在开始约5秒钟的重试通知'此时应用程序是否处于活动状态? –
@piyuj我们没有将我们的网络堆栈设置为自动重试。此外,请求是一个POST不是幂等的 –