iOS SDK配置
这篇文档将介绍如何配置和风天气开发服务中的iOS SDK。
隐私声明:和风天气iOS SDK不需要电话、位置、设备唯一标识符等任何特殊权限,我们不会也无法通过本SDK收集用户隐私信息。
和风天气iOS SDK支持下列操作系统:
- iOS 9.0 及以上
- macOS 10.10 及以上
提示:iOS SDK同样包含了macOS SDK。
第1步: 创建项目和凭据
第2步: 安装SDK
当前iOS SDK的最新版本是4.20(更新记录),支持下列安装方式:
CocoaPods
和风天气iOS SDK可以通过CocoaPods进行安装。CocoaPods是一种开源依赖库管理器,如果你还未安装CocoaPods,请参考CocoaPods快速开始。下列步骤假设你已经完成了CocoaPods的安装和设置。
- 在项目根目录创建名为
Podfile
的文件 - 在
Podfile
文件中添加如下内容并保存:- iOS
target 'YourTargetName-iOS' do pod 'QWeather-SDK' end
- macOS
target 'YourTargetName-macOS' do pod 'QWeather-SDK' end
- iOS
- 打开终端,进入包含
Podfile
的目录,运行:pod install
更新SDK
打开终端,进入包含Podfile
的目录,运行:
pod update
这将SDK升级到最新版本。
Swift Package Manager
iOS SDK支持使用Swift Package Manager集成,具体步骤请参考Adding package dependencies to your app
- SDK URL: https://github.com/qwd/iOS-SDK.git
- Dependency Rule: Up to Next Major Version 4.14.0 < 5.0.0
手动安装
你可以选择手动安装和风天气iOS SDK。
- 下载SDK:QWeather_iOS_SDK_Pub_V4.20
MD5: 1a6456f78c0c8bdbb00152b6e4d1f983 - 将
QWeather.xcframework
包导入到iOS或macOS Target中
如果工程是由swift编写
- 在Swift工程主目录下新建一个OC类,如果是项目第一次创建OC类的话,会弹出提示窗: 是否建立Swift-OC的桥接文件。
- 点击Create Bridging Header,Xcode会自动创建一个头文件。这个头文件,就是Swift-OC的桥接文件。
- 在Swift-OC桥接文件里将本framework类进行声明,即可以使用。
注意:
- 若产生崩溃
unrecognized selector sent to ...
,请在Build Settings中的Other Linker Flags里加上-ObjC
framework不提供日志功能,错误信息可由以下回调函数
getError
中获得- (void)weatherWithInquireType:(INQUIRE_TYPE)inquireType WithSuccess:(void(^)(id responseObject))getSuccess faileureForError:(void(^)(NSError *error))getError;
第3步: 配置密钥和订阅版本
在 AppDelegate
文件中配置API密钥信息和选择订阅版本:
配置Public ID和KEY
将代码中的Your_KEY
和Your_Public_ID
替换为你项目中的API KEY和凭据ID
QWeatherConfigInstance.publicID = @"Your_Public_ID";
QWeatherConfigInstance.appKey = @"Your_KEY";
配置项目的订阅版本
-
标准订阅:
QWeatherConfigInstance.appType = APP_TYPE_BIZ;
-
免费订阅:
QWeatherConfigInstance.appType = APP_TYPE_DEV;
示例代码
在需要使用的地方加入以下代码输入所需参数即可,返回为对应类型的数据模型
/**
* 实况天气
* 实况天气即为当前时间点的天气状况以及温湿风压等气象指数,具体包含的数据:体感温度、
* 实测温度、天气状况、风力、风速、风向、相对湿度、大气压强、降水量、能见度等。
*
* @param userType 用户类型,分为商业版和免费开发版
* @param location 地址详解
* @param lang 多语言,默认为简体中文
* @param unit 单位选择,公制(m)或英制(i),默认为公制单位
*/
#import <QWeather/QWeather.h>
AllWeatherInquieirs *qWeather = [AllWeatherInquieirs sharedInstance];//或AllWeatherInquieirs *qWeather = [[AllWeatherInquieirs alloc] init];
qWeather.appType = APP_TYPE_BIZ;
qWeather.location = @"";
qWeather.lang = @"";//或qWeather.languageType = @"";
qWeather.unit = @"";//或qWeather.unitType = @"";
[qWeather weatherWithInquireType: INQUIRE_TYPE_WEATHER_NOW WithSuccess:^(WeatherBaseClass * responseObject) {
} faileureForError:^(NSError *error) {
}];