繁体   English   中英

后台获取在模拟器中工作但在真实设备中不工作

[英]Background fetch working in simulator but not working in real device

我正在调用 API 来获取数据并根据 API 的响应显示本地推送,所以我使用的是 Apple 的background fetch服务,该服务在iOS 13及更高版本中引入。

但是当尝试在模拟器中测试这个场景并且它工作正常但是当我在真实设备中检查这个应用程序时它没有工作并且当它试图在后台调用 api 时失去连接。

我没有从设备中杀死我的应用程序,只是通过单击主页按钮放回。

我不确定为什么它不在真实设备中运行。

我到目前为止所做的。 步骤在这里:

  1. 我已经从应用程序项目的功能中启用后台获取。

  2. 然后我在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) } } }
  3. 这将从服务 class 调用一种方法,其中将调用一个 API,然后根据响应 api 它将触发一个本地推送。

所以这里的问题是,当 API 在真实设备中调用并且应用程序在后台时,我会遇到错误。

错误截图。

在此处输入图像描述

您拥有的代码是 iOS12 及更早版本。 尝试新流程。 我只是在这里举了一个例子(我的应用程序的工作代码):

BGAppRefreshTask 后台任务未执行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM