HPOpenWeather
HPOpenWeather 是一个跨平台的 Swift 框架,用于与 OpenWeather One-Call API 进行通信。有关更多详情,请参阅他们的 文档。
安装
HPOpenWeather 支持 iOS 13.0+、watchOS 7.0+、tvOS 13.0+ 和 macOS 10.15+。
SPM
将 .package(url: "https://github.com/henrik-dmg/HPOpenWeather", from: "5.0.0")
添加到您的 Package.swift
文件中
CocoaPods
在您的 Podfile
中添加 pod 'HPOpenWeather'
并运行 pod install
使用方法
要开始使用,您需要从 OpenWeather 获取一个API密钥。将此API密钥放入初始化器中,您还可以指定自定义温度格式以及/或响应中使用的语言(下面的列表显示了可用的语言和单位)。
import HPOpenWeather
// Assign API key
OpenWeather.shared.apiKey = "--- YOUR API KEY ---"
OpenWeather.shared.language = .german
OpenWeather.shared.units = .metric
// Or use options
let settings = OpenWeather.Settings(apiKey: "yourAPIKey", language: .german, units: .metric)
OpenWeather.shared.apply(settings)
您也可以通过访问 language
和 units
属性来自定义响应数据单位和语言。
发起请求
要发起请求,初始化一个新的请求对象,如下所示
let request = WeatherRequest(coordinate: .init(latitude: 40, longitude: 30))
或者请求过去的历史天气数据
let timemachineRequest = WeatherRequest(coordinate: .init(latitude: 40, longitude: 30), date: someDate)
注意:日期至少要过去6小时。
要提交请求,请在 OpenWeather
上调用 sendWeatherRequest
。
// Classic completion handler approach
OpenWeather.shared.schedule(request) { result in
switch result {
case .success(let response):
// do something with weather data here
case .failure(let error):
// handle error
}
}
// Or using the new concurrency features
let response = try await OpenWeather.shared.weatherResponse(request)
可用语言(默认在粗体)
- 英语
- 俄语
- 意大利语
- 西班牙语
- 乌克兰语
- 德语
- 葡萄牙语
- 罗马尼亚语
- 波兰语
- 芬兰语
- 荷兰语
- 法语
- 保加利亚语
- 瑞典语
- 繁体中文
- 简体中文
- 土耳其语
- 克罗地亚语
- 加泰罗尼亚语
可用单位(默认在粗体)
- 公制(风速以米/秒计,温度以摄氏度计)
- 英制(风速以英里/小时计,温度以华氏度计)
- 标准(风速以米/秒计,温度以开尔文计)