iOS performFetchWithCompletionHandler在特定时间(Schedule)

时间:2016-03-14 02:30:22

标签: ios

我想每天上午12点触发网络服务(例如)。可以吗?

我研究了背景提取,我发现了这个。

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplicationDelegate_Protocol/#//apple_ref/occ/intfm/UIApplicationDelegate/application:performFetchWithCompletionHandler

- (void)application:(UIApplication *)application
performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler

问题是系统会决定何时触发。我需要制作预定的网络服务。我该怎么办?

编辑:

我正在为企业应用做,我不需要提交到App Store。我想我仍然可以使用私人api(如果有必要的话)。

1 个答案:

答案 0 :(得分:0)

我正在处理同样的问题。但在我的情况下,时间不必那么精确,所以我能够使用后台提取,但你可以使用推送通知。

基本上你可以做的不是使用后台提取来在静默模式下使用远程通知。看看here(搜索“使用推送通知启动下载”)。

默认情况下,当您向APNS发送有效负载时,您将收到通知,但如果您只是发送JSON:

{content-available:1, sound:""} 

您将触发委托方法,但不会对您的UI进行任何更改,因此您可以实现业务逻辑。

唯一不足之处是您需要维护设备令牌并拥有与您的应用程序和APNS通信以发送这些通知的其他服务。