无声的通知callback方法,只有当应用程序在后台调用
我注册了远程通知,它的工作非常好。 现在我正在实施无声通知 。 为此,我启用了后台远程通知和应用程序从networking下载内容。
并发送,
{"aps": {"content-available": 1}}
它调用下面的callback方法,但只有当应用程序在后台:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler
而在这种方法中,我从服务器下载一些数据后发出本地通知。 但是这个方法根本不会在应用程序不在后台时调用。
在推送通知的苹果文档中,他们说:
当无声通知到达时,iOS会在后台唤醒您的应用程序,以便您可以从服务器获取新数据或进行后台信息处理。“
理想情况下,无声的远程通知应该在后台唤醒我的应用程序,本地通知应该工作。
有什么想法吗?
大量的苹果文档阅读后,我发现,方法(didReceiveRemoteNotification:fetchCompletionHandler)不会调用,如果用户强制退出应用程序。
正如所写,( 链接 )但是,如果用户强制退出,系统不会自动启动您的应用程序。 在这种情况下,用户必须重新启动应用程序或在系统尝试再次自动启动应用程序之前重新启动设备。