我正在嘗試創建一個可以顯示我的汽車資訊的小部件。我目前正在為我的主應用程式使用 API,但也想將它包含在我的小部件中,但還沒有找到方法來做到這一點。
如何從 API 獲取值,并在小部件中顯示值?這甚至可能WidgetKit嗎?我應該在getTimeline函式中包含 API 呼叫嗎?
編輯:這是我用于 API 呼叫的代碼:
let apii = TeslaSwift()
if let jsonString = UserDefaults.standard.object(forKey: "tesla.token") as? String,
let token: AuthToken = jsonString.decodeJSON(),
let _ = UserDefaults.standard.object(forKey: "tesla.token") as? String {
apii.reuse(token: token, email: nil)
}
apii.useMockServer = false
apii.debuggingEnabled = true
let id = UserDefaults(suiteName: "xxxx")!.string(forKey: "GlobalSelectedID")
apii.getVehicle(id!).done {
(vehicle: Vehicle) -> Void in
apii.getAllData(vehicle).done { (extendedVehicle: VehicleExtended) in
carState = (extendedVehicle.state!)
batteryLevel = (extendedVehicle.chargeState?.batteryLevel)!
interiorTemperature = (extendedVehicle.climateState?.insideTemperature!.celsius)!
let formatter = DateFormatter()
formatter.dateFormat = "dd.MM.yyyy - HH:mm:ss"
let now = Date()
let dateString = formatter.string(from:now)
lastUpdated = dateString
}.catch { (error) in
print("error1: \(error)")
}
}.catch { error in
print("error2: \(error)")
}
uj5u.com熱心網友回復:
您可以通過兩種方式從 API 顯示小部件中的值。
將資料保存在主應用程式的 userdefaults 中,然后在 getTimeLine 函式中從 userdefaults 檢索此資料。您需要將應用程式組用于共享用戶默認值。在用戶默認設定中保存資料后,您可以輕松地從主應用程式重新加載小部件。
來自 getTimeLine 的 API 呼叫
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/386655.html
