我有一个iOS7应用程序,它注册了后台模式远程通知:如果在UIBackgroundModes中定义了远程通知和新的推送通知,iOS是否会在后台启动应用程序?
<key>UIBackgroundModes</key>
<array>
<string>remote-notification</string>
</array>
它重新启动前工作正常,而在后台的应用程序获取此事件:
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
但它看起来像重新启动后我没有得到这个事件,直到我手动启动应用程序。
所以,问题是:我可以让iOS7在重启后运行我的应用程序到后台,当它接收我的应用程序的静默推送通知? 我的推送通知没有“提醒”字段,只有“contentAvailable” - 这可能是一个原因吗? 我见过像whatsapp这样的应用程序能够在重新启动后立即接收并显示推送通知,因此它至少可以用于“警报”类型的通知。
我知道我可以在重新启动后的某个时间点使用重要的位置监控来重新启动应用程序,但我希望避免在工具栏上始终显示位置图标。后台获取模式可以提供帮助吗? 是否有任何统计数据,在执行后台获取模式的应用程序重启后有多快?
我在我的测试中看到了这种行为。但问题是“我可以让iOS7在重新启动后运行我的应用到后台,当它接收到我的应用的静默推送通知?”。 那么,有没有什么办法可以在重新启动后重新获得远程通知,以便用户不需要手动启动应用程序? –
重新启动设备后,无法在后台启动应用程序。用户需要在重新启动后至少打开一次该应用。那么只有远程通知才会起作用。 – Nandha
我接受这个答案。如果用户长时间不报告,我们决定添加视觉通知 - 它允许提醒用户在设备重新启动后重新启动应用程序。 –