簡體   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