首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WidgetKit - API调用

WidgetKit - API调用
EN

Stack Overflow用户
提问于 2021-12-19 15:43:28
回答 1查看 944关注 0票数 1

我正在尝试创建一个可以显示我的汽车信息的小部件。我目前正在为我的主应用程序使用API,但也希望将其包含在我的小部件中,但还没有找到这样的方法。

如何从API中获得值,并在小部件中显示值?这在WidgetKit中是可能的吗?我应该在getTimeline函数中包含API调用吗?

编辑:这是我用于API调用的代码:

代码语言:javascript
复制
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)")
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-19 16:38:54

有两种方法可以在API的小部件中显示值。

  1. 将用户默认的数据保存在主应用程序中,然后从getTimeLine函数中的用户默认值中检索这些数据。您需要使用app组来实现共享用户默认设置。在以用户默认值保存数据后,您可以轻松地从主应用程序中重新加载小部件。

  1. API从getTimeLine

调用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70412904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档