國內(nèi)站產(chǎn)品與國際站的開發(fā)存在差異,此文主要介紹針對國際站額外需要修改的內(nèi)容。

設(shè)備端開發(fā)

國際站的設(shè)備端開發(fā)請您參見國際站設(shè)備開發(fā)完成。

配置控制臺

按照以下操作,為您的產(chǎn)品分別在中國站與國際站創(chuàng)建產(chǎn)品和自有品牌App。

  1. 選擇站點,設(shè)置為國際站
  2. 創(chuàng)建一個項目。詳細(xì)參見創(chuàng)建項目
  3. 在項目中創(chuàng)建產(chǎn)品,并定義產(chǎn)品功能。詳細(xì)參見創(chuàng)建產(chǎn)品并定義功能
  4. 設(shè)置App功能參數(shù)(詳細(xì)參見概述)。其中,在多語言管理中配置英文(或其他語言)的產(chǎn)品名稱與產(chǎn)品功能。
    多語言管理
  5. 在項目中創(chuàng)建自有品牌App,詳細(xì)參見創(chuàng)建自有App
    說明 國際站中App創(chuàng)建的包名、簽名(Android)、bundleID(iOS)需與中國站的一致。
  6. 站點選擇為中國站,重復(fù)以上操作步驟,在中國站創(chuàng)建產(chǎn)品與自有品牌App。

客戶端開發(fā)

  1. 集成安全圖片。

    根據(jù)集成安全圖片的操作,分別從中國站與國際站獲取安全圖片,將兩張安全圖片集成到App工程中。

    中國站 國際站
    yw_1222_china_production.jpg yw_1222_oversea_production.jpg
    • Android放置安全圖片
    • iOS
  2. 下載并集成SDK,詳細(xì)請參見下載并集成SDK
  3. 初始化SDK,詳細(xì)請參見SDK初始化(Android)SDK初始化(iOS)

    初始化時設(shè)置接入類型,國際站必須配置為REGION_ALL

  4. 設(shè)置國家信息。

    如果您App會運行在中國內(nèi)地以外地區(qū),且需要與中國內(nèi)地之間切換,那么需要用戶在賬號注冊之前設(shè)置國家/區(qū)域。

    說明 App連接中國內(nèi)地還是中國內(nèi)地以外的國家和地區(qū)(包括港澳臺地區(qū)),取決于賬號注冊時所選的國家。且當(dāng)App在中國內(nèi)地與中國內(nèi)地之外的國家和地區(qū)(包括港澳臺地區(qū))切換時,需要重啟App。
    • 獲取國家/區(qū)域信息
      iOS篇:
      [[IMSIotSmart sharedInstance] getCountryList:^(NSError * _Nullable error, NSArray<IMSIotCountry *> * _Nullable countryList) {
              // 返回的 countryList 為原始數(shù)據(jù)
              
          }];
      Android篇:
      public static void getCountryList(final ICountryListGetCallBack callback)
          IoTSmartImpl.getInstance().getCountryList(callback);
        }
    • 設(shè)置國家/區(qū)域
      iOS篇:
      [[IMSIotSmart sharedInstance] setCountry:_selectCountry callback:^(BOOL needRestartApp) {
              if (needRestartApp) {
                  ////必須退出應(yīng)用,否則無法正常使用
              }
          }];
      Android篇:
      IoTSmart.setCountry(mSelectedCountry, needRestartApp -> {
                if (needRestartApp) {
                    ////必須退出應(yīng)用,否則無法正常使用
                 }
      });
    • 獲取已設(shè)置的國家/區(qū)域
      iOS篇:
      IMSIotCountry *country = [[IMSIotSmart sharedInstance] getCountry];
      Android篇:
      GlobalConfig.getInstance().getCountry()
  5. 設(shè)置國際語言。

    生活物聯(lián)網(wǎng)平臺目前支持中文(zh-CN)、 英文(en-US)、法文(fr-FR)、德文(de-DE)、日文(ja-JP)、韓文(ko-KR)、西班牙文(es-ES)、俄文(ru-RU)、意大利文(it-IT)、印地文(hi-IN)、葡萄牙文(pt-PT)等十一種語言。

    通過以下設(shè)置可更改SDK內(nèi)部語言。

    Android篇:
    IoTSmart.setLanguage(languageName);
    // 查看sdk當(dāng)前設(shè)置的語言
     public static String getLanguage() {
            return IoTSmartImpl.getInstance().getLanguage();
    }
    iOS篇:
    NSString *language = @"zh-CN";
    [[IMSIotSmart sharedInstance] setLanguage:language];
    
    // 查看sdk當(dāng)前設(shè)置的語言
    NSString *language = [[IMSIotSmart sharedInstance] getLanguage];

    iOS可能還需要設(shè)置OA UI的語言。

    設(shè)置語言
     // 使用默認(rèn)的翻譯資源文件
        [[IMSiLopOALanguageManage shareInstance]
        setOpenAccountModuleLanguageWithLanguagePrefix:@"ko"];
    
    // 想使用自己的資源文件(xxxx):將 IMSOpenAccountCustom的IMSOpenAccountCustomResource.bundle的.lproj文件中的內(nèi)容拷貝,自行整理一份相同key的八國語言翻譯
        [[IMSiLopOALanguageManage shareInstance] 
        setOpenAccountModuleLanguageWithLanguagePrefix:@"ko" bundleName:@"xxxx"];

App調(diào)試說明

當(dāng)您完成產(chǎn)品的國際站開發(fā),在國內(nèi)使用開發(fā)版App調(diào)試時,需要注意以下事項。

  • App的地區(qū)請選擇除“中國內(nèi)地”以外的任意地區(qū)。
  • 使用手機號注冊/登錄時,需要選擇國家區(qū)號,如中國內(nèi)地為”+86“。

云端開發(fā)

當(dāng)您調(diào)用云端API,向國際站的云端發(fā)送請求時,需修改請求消息中的Host(默認(rèn)為中國站的Host),否則調(diào)用請求會失敗。調(diào)用云端API的詳細(xì)介紹請參見準(zhǔn)備工作

  • Java版如下。
    ApiResponse response = syncClient.postBody("api-iot.ap-southeast-1.aliyuncs.com",
    "/cloud/token", request, true);
  • PHP版如下。
    function example() { 
    $path = "/cloud/token"; 
    $host = "https://api-iot.ap-southeast-1.aliyuncs.com"; 
    $appKey = "你的"; 
    $appSecret = "你的"
    ...
    }