Ole*_*rov 4 reboot push-notification apple-push-notifications ios
我有一个iOS7应用程序注册后台模式远程通知:
<key>UIBackgroundModes</key>
<array>
<string>remote-notification</string>
</array>
Run Code Online (Sandbox Code Playgroud)
它在重新启动之前工作正常,应用程序在后台获取此事件:
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
Run Code Online (Sandbox Code Playgroud)
但它看起来像重启后我不再得到这个事件,直到我手动启动应用程序.
所以,问题是:我可以让iOS7在我的应用程序收到静态推送通知后重启后运行我的应用程序吗?我的推送通知没有"alert"字段,只有"contentAvailable" - 这可能是一个原因吗?我已经看到像whatsapp这样的应用程序能够在重新启动后立即接收并显示推送通知,因此它看起来至少可以用于"警报"类型的通知.
我知道我可以使用重要的位置监控在重启后的某个时刻重新启动应用程序,但我想避免一直在工具栏上显示位置图标.后台获取模式可以帮助吗?有没有统计数据,重启后应用程序的后台获取模式会有多快?
Nan*_*dha 10
不,它不会起作用.因为您重启设备时应用程序将处于" 未运行"状态.
根据apple doc,新的多任务API(提取和远程通知)仅在应用程序处于挂起/后台/前台状态时才有效.如果应用程序处于后台/前台状态,application:didReceiveRemoteNotification:fetchCompletionHandler则会触发.如果应用处于暂停状态,-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions则会触发.在您的情况下,应用程序处于" 未运行"状态,因为它application:didReceiveRemoteNotification:fetchCompletionHandler永远不会被触发.
有关应用程序状态的更多信息,请参阅apple doc.
| 归档时间: |
|
| 查看次数: |
4517 次 |
| 最近记录: |