0

我正在调用 API 来获取数据并根据 API 的响应显示本地推送,所以我使用background fetch的是上面介绍的 Apple 服务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. 这将从服务类调用一个方法,其中一个 API 将被调用,然后基于响应 api 它将触发一个本地推送。

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

错误截图。

在此处输入图像描述

4

1 回答 1

0

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

BGAppRefreshTask 后台任务未执行

于 2020-06-03T00:06:06.903 回答