介绍iOS SDK Level 7及之前版本中各SDK的初始化。
获取iOS安全图片
API通道SDK
在初始化SDK前,需要先集成安全图片,再参照下面的示例代码初始化SDK。
#import <IMSApiClient/IMSApiClient.h>
//指定 API 通道服务器域名和环境
[IMSConfiguration initWithHost:@"api.link.aliyun.com" serverEnv:IMSServerRelease];
// 海外环境,请参照如下设置
//[IMSConfiguration initWithHost:@"api-iot.ap-southeast-1.aliyuncs.com" serverEnv:IMSServerRelease];
长连接通道SDK
长连接通道SDK依赖API通道。在API通道初始化成功后,参照下面的示例代码初始化该SDK。
#import <IMSApiClient/IMSApiClient.h>
#import <AlinkAppExpress/LKAppExpress.h>
IMSConfiguration * imsconfig = [IMSConfiguration sharedInstance];
LKAEConnectConfig * config = [LKAEConnectConfig new];
config.appKey = imsconfig.appKey;
config.authCode = imsconfig.authCode;
// 指定长连接服务器地址。 (默认不填,SDK会使用默认的地址及端口。默认为国内华东节点。不要带 "协议://",如果置为空,底层通道会使用默认的地址)
config.server = @""
// 开启动态选择Host功能。 (默认 NO,海外环境请设置为 YES。此功能前提为 config.server 不特殊指定。)
config.autoSelectChannelHost = NO;
[[LKAppExpress sharedInstance]startConnect:config connectListener:self];// self 需要实现 LKAppExpConnectListener 接口
通道建连接结果,会在初始化API传入的LKAppExpConnectListener
实例中抛出。请在建连接成功后再使用下文描述的各种API,否则调用API会失败。
账号及用户SDK
SDK集成使用Pod集成,添加完依赖后需要将ALBBOpenAccountUI.framework中的“xib”格式的文件放置到主工程目录下。账号和用户SDK依赖API通道SDK。在API通道初始化成功后,再参照下面的示例代码初始化该SDK。
// 引入头文件
#import <IMSApiClient/IMSConfiguration.h>
#import <ALBBOpenAccountCloud/ALBBOpenAccountSDK.h>
ALBBOpenAccountSDK *accountSDK = [ALBBOpenAccountSDK sharedInstance];
// 设置安全图片authCode
IMSConfiguration *conf = [IMSConfiguration sharedInstance];
[accountSDK setSecGuardImagePostfix:conf.authCode];
// 设置账号服务器环境,默认为线上环境
[accountSDK setTaeSDKEnvironment:TaeSDKEnvironmentRelease];
// 设置账号服务器域名;如果是线上环境,可以不设置域名;
[accountSDK setGwHost:@"sdk.openaccount.aliyun.com"];
//如果需要切换到海外环境,请执行下面setDefaultOAHost方法,默认为大陆环境
//[accountSDK setGwHost:@"sgp-sdk.openaccount.aliyun.com"];
// 打开调试日志
//[accountSDK setDebugLogOpen:YES];
// 初始化
[accountSDK asyncInit:^{
// 初始化成功
} failure:^(NSError *error) {
// 初始化失败
}];
移动应用推送SDK
移动应用推送SDK依赖API通道SDK。在API通道初始化成功后,再参照下面的示例代码初始化该SDK。
#import <CloudPushSDK/CloudPushSDK.h>
#import <IMSApiClient/IMSConfiguration.h>
- (void)initCloudPush {
//authCode设置
[CloudPushSDK setAuthCode:[[IMSConfiguration sharedInstance] authCode]];
// 基于无线保镖初始化
[CloudPushSDK asyncInitWithSecurity:^(CloudPushCallbackResult *res) {
if (res.success) {
NSLog(@"Push SDK init with security box success, deviceId: %@", [CloudPushSDK
getDeviceId]);
} else {
NSLog(@"Push SDK init with security box failed, error: %@", res.error); }
}];
}
BoneMobile容器SDK
BoneMobile容器SDK依赖API通道SDK,完成API通道的初始化后,再参照下面的示例代码初始化该SDK。
#import <IMSBoneKit/IMSBoneConfiguration.h>
IMSBoneConfiguration *configuration = [IMSBoneConfiguration sharedInstance];
configuration.pluginEnvironment = IMSBonePluginEnvironmentRelease;
在发布资源变更以前,可以把pluginEnvironment切换到开发环境来测试插件变更的效果。测试通过后,单击发布按钮,插件的变更才会发布到生产环境。
身份认证SDK
身份认证SDK依赖API通道SDK和账号SDK,完成相应的初始化后,再参照下面的示例代码初始化该SDK。
// 引入头文件 #import <IMSApiClient/IMSApiClient.h> #import <IMSAccount/IMSAccountService.h> #import <IMSAuthentication/IMSAuthentication.h> IMSAccountService *accountService = [IMSAccountService sharedService]; // sessionProvider 需要开发者实现遵守IMSAccountProtocol协议的class 实例 accountService.sessionProvider = (id<IMSAccountProtocol>)sessionProvider; [IMSCredentialManager initWithAccountProtocol:accountService.sessionProvider]; IMSIoTAuthentication *iotAuthDelegate = [[IMSIoTAuthentication alloc] initWithCredentialManager:IMSCredentialManager.sharedManager]; [IMSRequestClient registerDelegate:iotAuthDelegate forAuthenticationType:IMSAuthenticationTypeIoT];
配网SDK
配网SDK自身不涉及初始化,但配网SDK依赖API通道SDK,因此需要完成API通道初始化才能使用。
物模型SDK
此功能模块依赖API通道SDK、长连接通道SDK。使用前请先初始化这两个SDK。再参照下面的示例代码初始化该SDK。
#import <IMSThingCapability/IMSThingCapability.h>
[kIMSThingManager startLocalAcceleration]; //初始化只需要添加此一行代码即可,此处会启动
// 本地通信加速能力.
// 当不再需要使用本地通信能力时,可调用下边接口停止
// [kIMSThingManager stopLocalAcceleration];