國內(nèi)站產(chǎn)品與國際站的開發(fā)存在差異,此文主要介紹針對國際站額外需要修改的內(nèi)容。
配置控制臺
按照以下操作,為您的產(chǎn)品分別在中國站與國際站創(chuàng)建產(chǎn)品和自有品牌App。
- 選擇站點,設(shè)置為國際站。
- 創(chuàng)建一個項目。詳細(xì)參見創(chuàng)建項目。
- 在項目中創(chuàng)建產(chǎn)品,并定義產(chǎn)品功能。詳細(xì)參見創(chuàng)建產(chǎn)品并定義功能。
- 設(shè)置App功能參數(shù)(詳細(xì)參見概述)。其中,在多語言管理中配置英文(或其他語言)的產(chǎn)品名稱與產(chǎn)品功能。
- 在項目中創(chuàng)建自有品牌App,詳細(xì)參見創(chuàng)建自有App。
說明 國際站中App創(chuàng)建的包名、簽名(Android)、bundleID(iOS)需與中國站的一致。
- 站點選擇為中國站,重復(fù)以上操作步驟,在中國站創(chuàng)建產(chǎn)品與自有品牌App。
客戶端開發(fā)
- 集成安全圖片。
根據(jù)集成安全圖片的操作,分別從中國站與國際站獲取安全圖片,將兩張安全圖片集成到App工程中。
中國站 |
國際站 |
yw_1222_china_production.jpg |
yw_1222_oversea_production.jpg |
- Android
- iOS
- 下載并集成SDK,詳細(xì)請參見下載并集成SDK。
- 初始化SDK,詳細(xì)請參見SDK初始化(Android)與SDK初始化(iOS)。
初始化時設(shè)置接入類型,國際站必須配置為REGION_ALL。
- 設(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()
- 設(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的語言。
// 使用默認(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 = "你的"
...
}