即使应用未运行,我也希望在后台下载数据。可能吗? 我尝试过使用后台提取,但它无法正常工作。 请参考以下代码:
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
UIApplication.shared.applicationIconBadgeNumber = 9
}
在应用程序运行时调用它,但在应用程序被杀死时调用
答案 0 :(得分:0)
不幸的是,在应用程序停用后或后台运行时,后台获取最多可以工作3分钟。除了VOIP,位置,音频......
您可以做的是发送远程推送通知"根据您的后端服务器中发生的特定事件" 到您的应用,以便用户与之互动并获取您的app到前台。
只要将应用程序加载到前台,您就可以在viewWillAppear
中添加一个带有选择器功能的观察者,以开始获取所需的数据。
NotificationCenter.default.addObserver(self, selector:#selector(applicationWillEnterForeground(_:)), name:NSNotification.Name.UIApplicationWillEnterForeground, object: nil)
选择器功能:
func applicationWillEnterForeground(_ notification: NSNotification) {
print("Fetch data")
}
然后在viewWillDisappear
中移除观察者:
NotificationCenter.default.removeObserver(self)