我调用API来获取数据,并根据API的响应显示本地推送,所以我使用了 background fetch
苹果公司的服务,它是在 iOS 13
及以上。
但是当我尝试在模拟器中测试这个场景时,它工作得很好,但是当我在实际设备中检查这个应用程序时,当它试图在后台调用api时,它无法工作并失去了连接。
我并没有从设备上杀死我的应用程序,只是通过点击主页按钮将其放回。
我不知道为什么它不能在真实设备上运行。
我到现在为止都做了什么。步骤在这里。
我在应用程序项目的功能中启用了后台获取。
然后我已经添加了这个代码在 AppDelegate
extension AppDelegate {
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
print("Bg Fetch from App Delegate 1")
DispatchQueue.main.asyncAfter(deadline: .now() + 3.0) {
BroadCastManager.sharedInstance.fetchNewDataWithCompletionHandler(completionHandler: completionHandler)
}
}
}
这将从服务类中调用一个方法,其中一个API将被调用,然后根据响应API将启动一个本地推送。
所以这里的问题是,当API在真实设备中被调用,而应用程序处于后台时,我得到以下错误。
错误截图。
你的代码是iOS12及之前的。 试试新的流程。 我在这里举了一个例子(我的应用程序的工作代码)。