文章标题:《蓝牙接入iOS SDK集成指南》 文档更新:2015-05-14 API接口文档:文档下载
第一步:将 SDK 导入到你的工程中
登录机智云官方网站下载并解压最新版本的SDK。如果您还尚未下载,请 点击这里下载
将解压后的 GizDataAccess.framework 拖动并复制到项目的 Frameworks 目录即可
第二步:引入头文件和注册 SDK 的 AppID
登录机智云官方网站查看产品信息获得 AppID 。如果尚未注册,请点击这里注册
初始化 SDK
打开 *AppDelegate.m(*代表你的工程名字) 导入文件头
#import
在 - (BOOL)application:didFinishLaunchingWithOptions:方法中调用 startWithAppID 方法来初始化 SDK,指定APPID.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//Init SDK
[GizDataAccess startWithAppID:@“APP_ID”];
// ……
return YES;
}
第三步:用户登录
注册用户登录的委托
代码示例
GizDataAccessLogin* gdaLogin = [[GizDataAccessLogin alloc] initWithDelegate:YOUR_LOGIN_DELEGATE];
实现用户登录的委托方法
代码示例
- (void)gizDataAccessDidLogin:(GizDataAccessLogin *)login uid:(NSString *)uid token:(NSString *)token result:(GizDataAccessErrorCode)result message:(NSString *)message {
if(result == kGizDataAccessErrorNone) {
// 登录成功
// ……
}
}
匿名登录
匿名登录时,不需要传入任何用户信息,SDK会生成默认的用户名。登录结果通过用户登录的委托返回。
代码示例:
[gdaLogin loginAnonymous];
实名登录
需要传入注册时的用户账号和密码,用户账号可以是用户名、手机号或邮箱,以及密码。登录结果通过用户登录的委托返回。
代码示例:
[gdaLogin login:@“YOUR_USERNAME” password:@“YOUR_PASSWORD”];
第三方账号登录
支持百度、腾讯、新浪账号登录。需要传入登录需要用到的uid和token,以及账号类型。登录结果通过用户登录的委托返回。
代码示例:
[gdaLogin loginWithThirdAccountType:THIRD_ACCOUNT_TYPE uid:@“UID” token:@“TOKEN”];
第四步:数据接入
注册数据接入的委托
代码示例
GizDataAccessSource* gdaSource = [[GizDataAccessSource alloc] initWithDelegate:YOUR_DATAACCESS_DELEGATE];
数据上传
实现数据上传的委托方法
代码示例:
- (void)gizDataAccessDidSaveData:(GizDataAccessSource *)source result:(GizDataAccessErrorCode)result message:(NSString *)message {
if(result == kGizDataAccessErrorNone) {
// 数据上传成功
// ……
}
}
数据上传
支持批量数据上传。最后一个参数data为数组类型,可以指定每一组数据的产生时间和内容,格式为标准的JSON。上传结果,通过数据上传的委托返回。
data示例: @{@"ts": [timestamp], @"attrs": @{ [dynamic_keys]: [dynamic_values], ... } }
代码示例:
[gdaSource saveData:@“YOUR_LOGIN_TOKEN” productKey:@“YOUR_BLE_PRODUCT_KEY” deviceSN:@“YOUR_BLE_DEVICE_SN” data:@“YOUR_DATA”];
获取数据
实现获取数据的委托方法
获取到的数据内容,按以下键值对方式提供:
@"attrs" : { [dynamic_keys] : [dynamic_values], ... },
@"uid" : [uid],
@"sn" : [sn],
@"ts" : [ts],
@"product_key" : [product_key]
代码示例:
- (void)gizDataAccessDidLoadData:(GizDataAccessSource *)source data:(NSArray *)data result:(GizDataAccessErrorCode)result errorMessage:(NSString *)message {
if(result == kGizDataAccessErrorNone) {
// 获取数据成功
for(NSDictionary *dict in data) {
NSString* sn = [dict valueForKey:@"device_sn"];
NSString* productkey = [dict valueForKey:@"product_key"];
NSString* uid = [dict valueForKey:@"uid"];
NSNumber *nTS = [dict valueForKey:@"ts"];
NSDictionary* attributes = [dict valueForKey:@"attrs"];
NSLog(@"sn:%@ productkey:%@ uid:%@ nTS:%@ attributes:%@", sn, productkey, uid, nTS, attributes);
}
}
}
获取数据
获取数据时,需指定起止时间段。如果limit值为0将只返回20条数据,若skip值为负数,则获取失败。数据获取结果,通过获取数据的委托返回。获取到的数据,按照时间排序,最新的数据排在最前面。
代码示例:
[gdaSource loadData:@“YOUR_LOGIN_TOKEN” productKey:@“YOUR_BLE_PRODUCT_KEY” deviceSN:@“YOUR_BLE_DEVICE_SN” startTime:START_DATA_TIME endTime:END_DATA_TIME limit:20 skip:0];
第四步:用户账号注册、信息修改和匿名转换
用户注册
注册用户账号注册的委托
代码示例:
GizDataAccessLogin* gdaRegister = [[[GizDataAccessLogin alloc] initWithDelegate:YOUR_USERREGISTER_DELEGATE];
实现用户账号注册的委托方法
代码示例
- (void)gizDataAccess:(GizDataAccessLogin *)login didRegisterUser:(NSString *)uid token:(NSString *)token result:(GizDataAccessErrorCode)result message:(NSString *)message {
if(result == kGizDataAccessErrorNone) {
// 用户注册成功
// ……
}
}
用户账号注册
通过accountType参数指定账号注册方式:用户名注册、手机号注册、邮箱注册。只有手机号注册时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。其他注册方式,验证码传nil。注册结果通过用户账号注册的委托返回。
代码示例:
[gdaRegister registerUser:@“YOUR_USERNAME” password:@“YOUR_PASSWORD” code:@“YOUR_PHONE_VERIFYCODE” accountType:YOUR_THIRD_ACCOUNT_TYPE];
修改密码
注册密码修改的委托
代码示例:
GizDataAccessLogin* gdaResetPassword = [[[GizDataAccessLogin alloc] initWithDelegate:YOUR_PASSWORD_RESET_DELEGATE];
实现密码修改的委托方法
代码示例:
- (void)gizDataAccess:(GizDataAccessLogin *)login didChangeUserPassword:(GizDataAccessErrorCode)result message:(NSString *)message {
if(result == kGizDataAccessErrorNone) {
// 密码重置成功
// ……
}
}
重置密码
可以通过手机号和邮箱重置密码。accountType指定是手机号重置还是邮箱重置,只有手机号重置时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。邮箱重置时,手机验证码传nil。重置结果通过密码修改的委托返回。
代码示例:
[gdaResetPassword resetPassword:@“YOUR_USERNAME” code:@“YOUR_PHONE_VERIFYCODE” newPassword:@“YOUR_NEW_PASSWORD” accountType:YOUR_THIRD_ACCOUNT_TYPE];
修改密码
用户实名登录后可以修改密码,修改结果通过密码修改的委托返回。
代码示例:
[gdaLogin changeUserPassword:@“YOUR_LOGIN_TOKEN” oldPassword:@“YOUR_OLD_PASSWORD” newPassword:@“YOUR_NEW_PASSWORD”];
修改用户信息
注册修改用户信息的委托
代码示例:
GizDataAccessLogin* gdaChangeUserInfo = [[[GizDataAccessLogin alloc] initWithDelegate:YOUR_CHANGE_USER_INFO_DELEGATE];
实现修改用户信息的委托方法
代码示例:
- (void)gizDataAccess:(GizDataAccessLogin *)login changeUserPassword:(GizDataAccessErrorCode)result message:(NSString *)message {
if(result == kGizDataAccessErrorNone) {
// 密码重置成功
// ……
}
}
修改用户信息
用户实名登录后可以修改手机号或邮箱,accountType指定是要修改手机号还是邮箱。只有修改手机号时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。修改邮箱时,验证码传nil。修改结果通过用户信息修改的委托返回。
代码示例:
[gdaLogin changeUserInfo:@“YOUR_TOKEN” username:@“YOUR_USERNAME” code:@“YOUR_PHONE_VERIFYCODE” accountType:THIRD_ACCOUNT_TYPE];
匿名转换
注册匿名转换的委托
代码示例:
GizDataAccessLogin* gdaLogin = [[[GizDataAccessLogin alloc] initWithDelegate:YOUR_ANONYMOUS_TRANS_DELEGATE];
实现匿名转换的委托方法
代码示例:
- (void)gizDataAccess:(GizDataAccessLogin *)login didTransAnonymousUser:(GizDataAccessErrorCode)result message:(NSString *)message {
if(result == kGizDataAccessErrorNone) {
// 匿名转换成功
// ……
}
}
匿名转换
匿名登录后,可以转换成普通用户、手机号用户或邮箱用户,您可以通过accountType参数指定要转换的用户类型。转成手机号用户时,需要传入验证码,验证码可以通过获取手机验证码的接口获取。其他用户类型,验证码传nil。转换结果通过匿名转换的委托返回。
代码示例:
[gdaLogin transAnonymousUser:@“YOUR_TOKEN” username:@“YOUR_USERNAME” password:@“YOUR_NEW_PASSWORD” code:@“YOUR_PHONE_VERIFYCODE” accountType:THIRD_ACCOUNT_TYPE];
获取手机验证码
注册手机验证码的委托
GizDataAccessLogin* gdaVerifyCode = [[[GizDataAccessLogin alloc] initWithDelegate:YOUR_VERIFYCODE_DELEGATE];
实现手机验证码的委托方法
代码示例:
- (void)gizDataAccess:(GizDataAccessLogin *)login didRequestSendVerifyCode:(GizDataAccessErrorCode)result message:(NSString *)message {
if(result == kGizDataAccessErrorNone) {
// 获取到了手机验证码
// ……
}
}
获取手机验证码
在用户注册、信息修改、匿名用户转换等过程中,手机验证码可以通过此方法获取。验证码通过手机验证码的委托返回。
代码示例:
[gdaLogin requestSendVerifyCode: @“PHONE_VERIFYCODE”];
用户账号类型
第三方账号类型
错误码