当您开发自有App,下载并集成SDK后,需要对所有SDK进行初始化。
概述
API Level 8及以上版本SDK的初始化不再需要逐一初始化SDK,而可以使用统一的初始化接口,一次性完成所有的所需SDK的初始化。如果您使用的是API Level 7或以下版本,建议您升级至最新版本API Level 10,详细请参见SDK升级。
统一初始化接口会根据您下载SDK时勾选的SDK配置项,一次性完成以下SDK的初始化。
- API通道SDK (必选初始化)
- 账号及用户SDK (必选初始化)
- 身份认证SDK(必选初始化)
- 长连接通道SDK
- 物模型SDK
- 移动应用推送SDK
- BoneMobile容器SDK
SDK初始化
- 下载并集成SDK。详细操作请参见下载并集成SDK。
初始化SDK。
配置SDK。
#import <IMSIotSmart/IMSIotSmart.h> IMSIotSmartConfig *config = [IMSIotSmartConfig new]; config.regionType = REGION_ALL; //取值范围参见枚举类型 `IMSRegionType` //这是默认配置,可以根据实际情况调整 /*new in this version 1、appkey、appSecurity 与 setSigner 1.1如果设置了appkey、appScurity 可不用setSigner,sdk内不会进行自行加签名、加密等处理 1.2如果不设置appkey、appSecurity 需要setSigner 由Signer实现IMSOpenSecurityGuardSigner协议中的加签方法 2、使用推送功能(新版本sdk)必须设置appkey、appSecurity ,如不使用推送参考1 */ //设置appkey、appSecurity config.appKey = @"xxxxxxx";//需要自行配置自有app的appkey config.appSecurity = @"xxxxxxx";//需要自行配置自有app的appSecurit [IMSIotSmart sharedInstance].config = config; //设置signer id<IMSOpenSecurityGuardSigner> signer = [Class new]; [[IMSIotSmart sharedInstance] setSigner:signer];
说明如果使用默认配置,可忽略此步骤。
IMSOpenSecurityGuardSigner协议说明
// Description /// - Parameters: /// - text: 待加密字符串 /// - type: 加密类型hmacSha1、hmacSha256 /// -useBase64:是否要Base64编码 -(NSString*)signWithText:(NSString*)text AndType:(IMSOpenSecuritySignType)type useBase64:(BOOL)useBase64;
启动初始化。
#import <IMSIotSmart/IMSIotSmart.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { IMSIotSmartConfig *config = [IMSIotSmartConfig new]; config.regionType = REGION_ALL; //取值范围参见枚举类型 `IMSRegionType` //设置appkey、appSecurity config.appKey = @"xxxxxxx";//需要自行配置自有app的appkey config.appSecurity = @"xxxxxxx";//需要自行配置自有app的appSecurit [IMSIotSmart sharedInstance].config = config; //设置signer id<IMSOpenSecurityGuardSigner> signer = [Class new]; [[IMSIotSmart sharedInstance] setSigner:signer] [[IMSIotSmart sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions]; return YES; } - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { //如果App没有集成移动应用推送能力,此处无需要调用 [[IMSIotSmart sharedInstance] application:application didReceiveRemoteNotification:userInfo]; } - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { //如果App没有集成移动应用推送能力,此处无需要调用 [[IMSIotSmart sharedInstance] application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; } - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { //如果App没有集成移动应用推送能力,此处无需要调用 [[IMSIotSmart sharedInstance] application:application didFailToRegisterForRemoteNotificationsWithError:error]; }
设置国家。
生活物联网平台的云端服务为多区域部署,根据您使用的SDK版本以及config.regionType参数的取值,来判断是否需要在初始化时设置国家。
参数取值
API Level 8及以下
API Level 9及以上
REGION_CHINA_ONLY
不需要
不需要
REGION_ALL
需要
说明此时如果您没有设置国家,SDK初始化流程会被暂停,且没法使用SDK的任何API。设置国家的操作请参见历史文档。
不需要(此时需在注册App账号时设置国家)
设置App可配网的产品列表。
#import <IMSIotSmart/IMSIotSmart+scope.h> [[IMSIotSmart sharedInstance] configProductScope:PRODUCT_SCOPE_ALL]; /// 配置App上能看到的产品的范围,PRODUCT_SCOPE_ALL:表示当前项目中已发布和未发布的所有产品;PRODUCT_SCOPE_PUBLISHED:表示只包含已发布产 /// 正式发布的App请选择PRODUCT_SCOPE_PUBLISHED
SDK API Reference
在使用生活物联网平台提供的SDK时,相关的SDK API注释请参见SDK API Reference。
文档内容是否对您有帮助?