【发布时间】:2020-05-04 15:44:29
【问题描述】:
我正在调用 API 来获取数据并根据 API 的响应显示本地推送,因此我使用的是 Apple 的 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 并且应用程序在后台时,我会遇到错误。
错误截图。
【问题讨论】:
-
@CodeBender 不适用于后台任务 API。
-
请编辑您的问题以显示相关代码。
-
@Paulw11 编辑问题并编写一些代码和步骤以获取详细信息。
-
那不是新的api,那是旧的api。为什么 3 秒后就派人而不是干活?
-
3 秒延迟不是问题,先生。这只是推送的延迟。如果我没有它,那么它也不能在设备中工作。正如我在上面的问题中提到的,它在模拟器中工作,但在真实设备中不工作。 @Paulw11
标签: ios swift5 background-task xcode11.1