SDK初始化
當(dāng)您開發(fā)自有App,下載并集成SDK后,需要對所有SDK進(jìn)行初始化。
概述
API Level 8及以上版本SDK的初始化不再需要逐一初始化SDK,而可以使用統(tǒng)一的初始化接口,一次性完成所有的所需SDK的初始化。如果您使用的是API Level 7或以下版本,建議您升級至最新版本API Level 10,詳細(xì)請參見SDK升級。
統(tǒng)一初始化接口會(huì)根據(jù)您下載SDK時(shí)勾選的SDK配置項(xiàng),一次性完成以下SDK的初始化。
- API通道SDK (必選初始化)
- 賬號及用戶SDK (必選初始化)
- 身份認(rèn)證SDK(必選初始化)
- 長連接通道SDK
- 物模型SDK
- 移動(dòng)應(yīng)用推送SDK
- BoneMobile容器SDK
SDK初始化
- 下載并集成SDK。詳細(xì)操作請參見下載并集成SDK。
初始化SDK。
配置SDK。
#import <IMSIotSmart/IMSIotSmart.h> IMSIotSmartConfig *config = [IMSIotSmartConfig new]; config.regionType = REGION_ALL; //取值范圍參見枚舉類型 `IMSRegionType` //這是默認(rèn)配置,可以根據(jù)實(shí)際情況調(diào)整 /*new in this version 1、appkey、appSecurity 與 setSigner 1.1如果設(shè)置了appkey、appScurity 可不用setSigner,sdk內(nèi)不會(huì)進(jìn)行自行加簽名、加密等處理 1.2如果不設(shè)置appkey、appSecurity 需要setSigner 由Signer實(shí)現(xiàn)IMSOpenSecurityGuardSigner協(xié)議中的加簽方法 2、使用推送功能(新版本sdk)必須設(shè)置appkey、appSecurity ,如不使用推送參考1 */ //設(shè)置appkey、appSecurity config.appKey = @"xxxxxxx";//需要自行配置自有app的appkey config.appSecurity = @"xxxxxxx";//需要自行配置自有app的appSecurit [IMSIotSmart sharedInstance].config = config; //設(shè)置signer id<IMSOpenSecurityGuardSigner> signer = [Class new]; [[IMSIotSmart sharedInstance] setSigner:signer];
說明如果使用默認(rèn)配置,可忽略此步驟。
IMSOpenSecurityGuardSigner協(xié)議說明
// Description /// - Parameters: /// - text: 待加密字符串 /// - type: 加密類型hmacSha1、hmacSha256 /// -useBase64:是否要Base64編碼 -(NSString*)signWithText:(NSString*)text AndType:(IMSOpenSecuritySignType)type useBase64:(BOOL)useBase64;
啟動(dòng)初始化。
#import <IMSIotSmart/IMSIotSmart.h> - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { IMSIotSmartConfig *config = [IMSIotSmartConfig new]; config.regionType = REGION_ALL; //取值范圍參見枚舉類型 `IMSRegionType` //設(shè)置appkey、appSecurity config.appKey = @"xxxxxxx";//需要自行配置自有app的appkey config.appSecurity = @"xxxxxxx";//需要自行配置自有app的appSecurit [IMSIotSmart sharedInstance].config = config; //設(shè)置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沒有集成移動(dòng)應(yīng)用推送能力,此處無需要調(diào)用 [[IMSIotSmart sharedInstance] application:application didReceiveRemoteNotification:userInfo]; } - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { //如果App沒有集成移動(dòng)應(yīng)用推送能力,此處無需要調(diào)用 [[IMSIotSmart sharedInstance] application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; } - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { //如果App沒有集成移動(dòng)應(yīng)用推送能力,此處無需要調(diào)用 [[IMSIotSmart sharedInstance] application:application didFailToRegisterForRemoteNotificationsWithError:error]; }
設(shè)置國家。
生活物聯(lián)網(wǎng)平臺的云端服務(wù)為多區(qū)域部署,根據(jù)您使用的SDK版本以及config.regionType參數(shù)的取值,來判斷是否需要在初始化時(shí)設(shè)置國家。
參數(shù)取值
API Level 8及以下
API Level 9及以上
REGION_CHINA_ONLY
不需要
不需要
REGION_ALL
需要
說明此時(shí)如果您沒有設(shè)置國家,SDK初始化流程會(huì)被暫停,且沒法使用SDK的任何API。設(shè)置國家的操作請參見歷史文檔。
不需要(此時(shí)需在注冊App賬號時(shí)設(shè)置國家)
設(shè)置App可配網(wǎng)的產(chǎn)品列表。
#import <IMSIotSmart/IMSIotSmart+scope.h> [[IMSIotSmart sharedInstance] configProductScope:PRODUCT_SCOPE_ALL]; /// 配置App上能看到的產(chǎn)品的范圍,PRODUCT_SCOPE_ALL:表示當(dāng)前項(xiàng)目中已發(fā)布和未發(fā)布的所有產(chǎn)品;PRODUCT_SCOPE_PUBLISHED:表示只包含已發(fā)布產(chǎn) /// 正式發(fā)布的App請選擇PRODUCT_SCOPE_PUBLISHED
SDK API Reference
在使用生活物聯(lián)網(wǎng)平臺提供的SDK時(shí),相關(guān)的SDK API注釋請參見SDK API Reference。