国内站产品与国际站的开发存在差异,此文主要介绍针对国际站额外需要修改的内容。
配置控制台
按照以下操作,为您的产品分别在中国站与国际站创建产品和自有品牌App。
- 选择站点,设置为国际站。
- 创建一个项目。详细参见创建项目。
- 在项目中创建产品,并定义产品功能。详细参见创建产品并定义功能。
- 设置App功能参数(详细参见概述)。其中,在多语言管理中配置英文(或其他语言)的产品名称与产品功能。
- 在项目中创建自有品牌App,详细参见创建自有App。
说明 国际站中App创建的包名、签名(Android)、bundleID(iOS)需与中国站的一致。
- 站点选择为中国站,重复以上操作步骤,在中国站创建产品与自有品牌App。
客户端开发
- 集成安全图片。
根据集成安全图片的操作,分别从中国站与国际站获取安全图片,将两张安全图片集成到App工程中。
中国站 |
国际站 |
yw_1222_china_production.jpg |
yw_1222_oversea_production.jpg |
- Android
- iOS
- 下载并集成SDK,详细请参见下载并集成SDK。
- 初始化SDK,详细请参见SDK初始化(Android)与SDK初始化(iOS)。
初始化时设置接入类型,国际站必须配置为REGION_ALL。
- 设置国家信息。
如果您App会运行在中国内地以外地区,且需要与中国内地之间切换,那么需要用户在账号注册之前设置国家/区域。
说明 App连接中国内地还是中国内地以外的国家和地区(包括港澳台地区),取决于账号注册时所选的国家。且当App在中国内地与中国内地之外的国家和地区(包括港澳台地区)切换时,需要重启App。
- 获取国家/区域信息
iOS篇:
[[IMSIotSmart sharedInstance] getCountryList:^(NSError * _Nullable error, NSArray<IMSIotCountry *> * _Nullable countryList) {
// 返回的 countryList 为原始数据
}];
Android篇:
public static void getCountryList(final ICountryListGetCallBack callback)
IoTSmartImpl.getInstance().getCountryList(callback);
}
- 设置国家/区域
iOS篇:
[[IMSIotSmart sharedInstance] setCountry:_selectCountry callback:^(BOOL needRestartApp) {
if (needRestartApp) {
////必须退出应用,否则无法正常使用
}
}];
Android篇:
IoTSmart.setCountry(mSelectedCountry, needRestartApp -> {
if (needRestartApp) {
////必须退出应用,否则无法正常使用
}
});
- 获取已设置的国家/区域
iOS篇:
IMSIotCountry *country = [[IMSIotSmart sharedInstance] getCountry];
Android篇:
GlobalConfig.getInstance().getCountry()
- 设置国际语言。
生活物联网平台目前支持中文(zh-CN)、 英文(en-US)、法文(fr-FR)、德文(de-DE)、日文(ja-JP)、韩文(ko-KR)、西班牙文(es-ES)、俄文(ru-RU)、意大利文(it-IT)、印地文(hi-IN)、葡萄牙文(pt-PT)等十一种语言。
通过以下设置可更改SDK内部语言。
Android篇:
IoTSmart.setLanguage(languageName);
// 查看sdk当前设置的语言
public static String getLanguage() {
return IoTSmartImpl.getInstance().getLanguage();
}
iOS篇:
NSString *language = @"zh-CN";
[[IMSIotSmart sharedInstance] setLanguage:language];
// 查看sdk当前设置的语言
NSString *language = [[IMSIotSmart sharedInstance] getLanguage];
iOS可能还需要设置OA UI的语言。
// 使用默认的翻译资源文件
[[IMSiLopOALanguageManage shareInstance]
setOpenAccountModuleLanguageWithLanguagePrefix:@"ko"];
// 想使用自己的资源文件(xxxx):将 IMSOpenAccountCustom的IMSOpenAccountCustomResource.bundle的.lproj文件中的内容拷贝,自行整理一份相同key的八国语言翻译
[[IMSiLopOALanguageManage shareInstance]
setOpenAccountModuleLanguageWithLanguagePrefix:@"ko" bundleName:@"xxxx"];
App调试说明
当您完成产品的国际站开发,在国内使用开发版App调试时,需要注意以下事项。
- App的地区请选择除“中国内地”以外的任意地区。
- 使用手机号注册/登录时,需要选择国家区号,如中国内地为”+86“。
云端开发
当您调用云端API,向国际站的云端发送请求时,需修改请求消息中的Host(默认为中国站的Host),否则调用请求会失败。调用云端API的详细介绍请参见准备工作。
- 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 = "你的"
...
}