SwiftUI OpenWeather One Call API 库

One Call API 3.0

“只需一次 API 调用,即可通过我们全新的 OpenWeather One Call API 获取特定位置的所有基本天气数据。”

OWOneCall 是一个小型 Swift 库,用于连接到 One Call API 3.0 并检索所选的天气数据。易于与 SwiftUI 一起使用。

通过单个函数调用提供当前、预报和历史天气数据。

用法

来自 OpenWeather One Call API 的天气数据通过使用 OWProvider 访问,使用单个函数 getWeather,例如

let weatherProvider = OWProvider(apiKey: "your key")  // default One Call API 3.0
@State var weather = OWResponse()
...

Alternatively;

let weatherProvider = OWProvider(apiKey: "your key", urlString: "https://api.openweathermap.org/data/3.0/onecall")  


// using a binding
weatherProvider.getWeather(lat: 35.661991, lon: 139.762735, weather: $weather, options: OWOptions.current())
...
Text(weather.current?.weatherInfo() ?? "")

// or using the async style, eg with `.task {...}`
if let results = await weatherProvider.getWeather(lat: 35.661991, lon: 139.762735, options: OWOptions.dailyForecast(lang: lang)) {
        weather = results
}

// or using the callback style, eg with `.onAppear {...}`
weatherProvider.getWeather(lat: 35.661991, lon: 139.762735, options: OWOptions.current()) { response in
       if let theWeather = response {
          self.weather = theWeather
       }
}

请参阅以下示例用法

选项

可用选项

创建如下选项对象以检索当前天气数据

let myOptions = OWOptions(excludeMode: [.daily, .hourly, .minutely], units: .metric, lang: "en")

检索当前和预报天气数据的其他便捷选项

检索过去历史天气数据的其他便捷选项

使用 lang 选项参数选择结果的语言,默认为 “en”。

安装

./Sources/OWOneCall 文件夹中的文件包含到您的项目中,或最好使用 Swift Package Manager

Swift Package Manager (SPM)

为您的项目创建一个 Package.swift 文件,并添加对以下内容的依赖

dependencies: [
  .package(url: "https://github.com/workingDog/OWOneCall.git", from: "1.3.2")
]

使用 Xcode

Select your project > Swift Packages > Add Package Dependency...
https://github.com/workingDog/OWOneCall.git

然后在您的代码中

import OWOneCall

参考

要求

需要有效的 OpenWeather 密钥,请参阅

许可证

MIT