imSiLop

概述

封装了阿里云的配网sdk

使用此插件之前需先配置 config.xml 文件,方法如下

  • 配置示例:
<feature name="imSiLop">
    <param  name="regionType" value=""/>
    <param  name="appType" value=""/>
</feature>
  • 字段描述:

    regionType:该字段用于确定app的使用范围,按飞燕平台设计,app跟设备分为国内跟海外两套环境,而且彼此隔离。如app连接国内服务器时,无法添加海外出货的设备,反之国内连接海外服务器时,国内出货的设备也无法添加。基于此,在app初始化IoT SDKs,需要明确app是只工作在国内还是会在国内跟海外之间进行切换。

  • 取值范围: 0:前APP既支持连接中国大陆服务器,又支持连接海外服务器,海外连接哪个region,取决于 账号注册时所选国家。当未设置config时会默认使用此值 1:当前APP只支持连接中国大陆服务器

  • 默认:0

    appType:APP是测试版还是正式版。

  • 取值范围: 0:正式版 1:测试版

  • 默认:0

集成安全图片

安全图片是为应用程序提供基本安全性的图片加密软件。您在开发App应用程序时需要下载相应的安全图片,并将安全图片集成到App工程中。

从API Level 8开始,从平台下载的安全图片名称与站点(中国站/国际站)、版本(测试版/正式版)有关,如下表所示:

  • | 测试版 | 正式版 :----------- | :-------------:| -----------: 中国版 | yw_1222_china_develop.jpg | yw_1222_china_production.jpg 国际版 | yw_1222_oversea_develop.jpg | yw_1222_oversea_production.jpg

集成方法如下:

下载 imSiLopAppendix 插件 zip 包并解压,把 zip 包内 target 目录下的 yw_1222_china_develop.jpg 文件替换为自己从自有品牌App页面下载的文件。然后重新压缩为 zip 包文件上传自定义插件,云编译时勾选该插件。

插件接口

getCountryList

查询可用的国家(地区)列表,根据当前语言设置优先从本地缓存读取数据,本地没有有效缓存则从云端拉数据

getCountryList(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   countrys:[{
    areaName:'',          //字符串类型,国家(地区)名称
    code:'',              //字符串类型,国家(地区)区号
    pinyin:'',            //国家(地区)名称的拼音           
    isoCode:'',           //字符串类型,ISO Country Code - 标准国家码
    domainAbbreviation:'',//字符串类型,标准国家码简写
   }] 
}

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.getCountryList(function(ret) {
    api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

setCountry

用户选中某个国家(地区)后,调用这个接口设置国家(地区),sdk内部会持久化保存设置,无需每次重启app都做设置

setCountry({params},callback(ret))

params

country:

  • 类型:json对象类型
  • 描述:国家(地区)信息
  • 内部字段:
{
   areaName:'',          //字符串类型,国家(地区)名称
   code:'',              //字符串类型,国家(地区)区号
   pinyin:'',            //国家(地区)名称的拼音                  
   isoCode:'',           //字符串类型,ISO Country Code - 标准国家码
   domainAbbreviation:'',//字符串类型,标准国家码简写
}

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    needRestartApp:true,           //布尔类型,中国大陆与其他区域的切换是否需要重启app
}

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.setCountry({
  country:{
   areaName:'',          //字符串类型,国家(地区)名称
   code:'',              //字符串类型,国家(地区)区号
   pinyin:'',            //国家(地区)名称的拼音                  
   isoCode:'',           //字符串类型,ISO Country Code - 标准国家码
   domainAbbreviation:'',//字符串类型,标准国家码简写
  }
 },callback(ret){
    api.alert({
            msg: JSON.stringify(ret)
        })
 });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

setLanguage

当应用使用的语言变化时,调用此api设置IoT sdks使用的语言,当未设置过语言时,SDK默认取值是'跟随系统语言'。当调用此api设置过语言后,sdkl内部会固化保存,下次app启动,自动读取上次设置的语言

setLanguage({params},callback(ret))

params

language:

  • 类型:字符串类型
  • 描述:语言,目前支持:中文简体、英文、法语、德语、日语、韩语、西班牙语、俄语、印度语、意大利语。对应的取值:zh-CN、en-US、fr-FR、de-DE、ja-JP、ko-KR、es-ES、ru-RU、hi-IN、it-IT
  • 默认:'zh-CN'

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.setLanguage({
  language:''
 });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

phoneRegister

显示手机注册页面

phoneRegister(callback(ret,err))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true,           //布尔类型,true:注册成功,false:用户取消注册
}

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.phoneRegister(function(ret) {
    api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

emailRegister

显示邮箱注册页面

emailRegister(callback(ret,err))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true,           //布尔类型,true:注册成功,false:用户取消注册
}

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.emailRegister(function(ret) {
    api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

presentLogin

显示登录页面

presentLogin(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true,           //布尔类型,是否登陆成功
}

err:

  • 类型:JSON 对象
  • 描述:登录失败对应的错误;取消登录同样会返回一个错误码
  • 内部字段:
{
  code:,          //数字类型;错误码
  msg:'',        //字符串类型;错误信息
}

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.presentLogin(function(ret,err) {
    if (ret) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

getUser

获取已经登录的帐号信息

getUser(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    accountId:'',            //字符串类型,accountId
    displayName:'',          //字符串类型,名称
    avatarUrl:'',            //字符串类型,头像url地址
    mobile:'',               //字符串类型,mobile
    mobileLocationCode:'',   //字符串类型,mobileLocationCode
    hasPassword:true,        //布尔类型,是否设置了密码    
    openId:'',               //字符串类型,如果使用三方授权登录,第三方账号的 id 信息
    extInfos:'',              //字符串类型,扩展信息
    openaccountInfoDict:'',   //json对象,服务端返回的所有account数据都在这里面
    oauthInfoDict:'',         //json对象,使用三方授权登录时返回的三方账号数据,包含id,nick,avatarUrl,gender(0: 未知, 1:男, 2:女) 
}

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.presentLogin(function(ret) {
    api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

updateAccountProfile

更新用户信息(修改头像需要先将头像图片存储到云端,获取该图片的URL)

updateAccountProfile({params},callback(ret,err))

params

accountProfile:

  • 类型:json对象类型
  • 描述:用户信息
  • 示例:{'displayName':'name1','avatarUrl':'url'}

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true,           //布尔类型,是否更新成功
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
  code:,          //数字类型;错误码
  msg:'',        //字符串类型;错误信息
}

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.updateAccountProfile({
  accountProfile:{}
 },callback(ret,err){
    if (ret) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
 });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

logout

退出登陆

logout()

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.logout();

可用性

iOS、Android系统

可提供的1.0.0及更高版本

startDiscovery

启动发现设备流程,包括本地发现的设备以及云端待配网设备

startDiscovery(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true,           //布尔类型,是否成功
    devices:[{	           //Json数组类型;设备列表
        productKey:'',     //字符串类型;设备productKey
        deviceName:'',     //字符串类型;设备名称
        mac:'',            //字符串类型;设备Mac
        ip:'',             //字符串类型;设备IP
        iotId:'',          //字符串类型;设备iotID
        devType:'',        //字符串类型;待配网设备联网类型:0代表wifi设备;1代表ethernet设备(网线连接):2代表路由器 ; @"ble_subtype_2" 代表蓝牙辅助配网设备
        token:'',          //字符串类型;设备配网完成后得到的token,用于下一步绑定用
        linkType:0,        //数字类型,指定配网方式 
                           //取值如下
                           //0:由native SDK自行决定在广播配网,热点配网,路由器配网,路由器配网中选择最优的配网方案
                           //1:设备路由器配网方案,在一般配网方案失败后,可切换到路由器方案
                           //2:设备广播配网方案,在一般配网方案失败后,可切换到广播配网方案
                           //3:手机热点配网方案,在一般配网方案失败后,可切换到手机热点方案
                           //4:设备热点配网方案
                           //5:设备广播配网方案,一对多配网模式
                           //6:蓝牙辅助配网方案,在一般配网方案失败后,可切换此方案
                           //7:二维码配网方案
                           //8:零配批量配网方案                    
        regProductKey:'',      //字符串类型;发现待配网设备的设备的productKey
        regDeviceName:'',      //字符串类型;发现待配网设备的设备的productNeme
        addDeviceFrom:'',      //字符串类型;云端返回待配网设备来源:“ROUTER”--代表路由器发现,“ZERO_DEVICE”代表零配发现
        productEncryptKey:'',  //字符串类型;产品加密密钥 
        securityRandom:'',     //字符串类型;加密过程安全随机数因子
        protocolVersion:'',    //字符串类型;协议版本
        traceId:'',            //字符串类型;埋点ID Tracker 
        productId:'',          //字符串类型;待配设备产品ID
        softApSsidPrefix:'',   //字符串类型;针对 linkType 为4,设备热点方案,自定义设备热点前缀
        softApNoNeedSwitchBackRouter:'', //布尔类型;针对 linkType 为4,设备热点方案,是否不需要切换回原WiFi, true 则不强制切换回原WiFi
        supportServices:[],    //数组类型,设备配网完成后得到的设备服务信息,设备热点配网模式下可能返回
        supportServicesVersion:{},//json对象类型;设备配网完成后得到的设备服务版本号,设备热点配网模式下可能返回
        fwVersion:''           //字符串类型;设备固件版本                      
    }]
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
  code:,          //数字类型;错误码
  msg:'',        //字符串类型;错误信息
}

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.startDiscovery(function(ret,err) {
    if (ret) {
        api.alert({
            msg: JSON.stringify(ret)
        })
    } else {
        api.alert({
            msg: JSON.stringify(err)
        })
    }
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

getLanDevices

获取所有发现的设备:包括待配网、已配网待绑定、已绑定

getLanDevices()

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true,           //布尔类型,是否成功
    devices:[{	           //Json数组类型;设备列表
        productKey:'',     //字符串类型;设备productKey
        deviceName:'',     //字符串类型;设备名称
        mac:'',            //字符串类型;设备Mac
        ip:'',             //字符串类型;设备IP
        iotId:'',          //字符串类型;设备iotID
        devType:'',        //字符串类型;待配网设备联网类型:0代表wifi设备;1代表ethernet设备(网线连接):2代表路由器 ; @"ble_subtype_2" 代表蓝牙辅助配网设备
        token:'',          //字符串类型;设备配网完成后得到的token,用于下一步绑定用
        linkType:0,        //数字类型,指定配网方式 
                           //取值如下
                           //0:由native SDK自行决定在广播配网,热点配网,路由器配网,路由器配网中选择最优的配网方案
                           //1:设备路由器配网方案,在一般配网方案失败后,可切换到路由器方案
                           //2:设备广播配网方案,在一般配网方案失败后,可切换到广播配网方案
                           //3:手机热点配网方案,在一般配网方案失败后,可切换到手机热点方案
                           //4:设备热点配网方案
                           //5:设备广播配网方案,一对多配网模式
                           //6:蓝牙辅助配网方案,在一般配网方案失败后,可切换此方案
                           //7:二维码配网方案
                           //8:零配批量配网方案                    
        regProductKey:'',      //字符串类型;发现待配网设备的设备的productKey
        regDeviceName:'',      //字符串类型;发现待配网设备的设备的productNeme
        addDeviceFrom:'',      //字符串类型;云端返回待配网设备来源:“ROUTER”--代表路由器发现,“ZERO_DEVICE”代表零配发现
        productEncryptKey:'',  //字符串类型;产品加密密钥 
        securityRandom:'',     //字符串类型;加密过程安全随机数因子
        protocolVersion:'',    //字符串类型;协议版本
        traceId:'',            //字符串类型;埋点ID Tracker 
        productId:'',          //字符串类型;待配设备产品ID
        softApSsidPrefix:'',   //字符串类型;针对 linkType 为4,设备热点方案,自定义设备热点前缀
        softApNoNeedSwitchBackRouter:'', //布尔类型;针对 linkType 为4,设备热点方案,是否不需要切换回原WiFi, true 则不强制切换回原WiFi
        supportServices:[],    //数组类型,设备配网完成后得到的设备服务信息,设备热点配网模式下可能返回
        supportServicesVersion:{},//json对象类型;设备配网完成后得到的设备服务版本号,设备热点配网模式下可能返回
        fwVersion:''           //字符串类型;设备固件版本 
  }]
}

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.getLanDevices(function(ret) {
    api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

stopDiscovery

停止发现设备流程

stopDiscovery()

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.stopDiscovery();

可用性

iOS、Android系统

可提供的1.0.0及更高版本

setDevice

设置待添加的设备属性,在 startAddDevice 调用前传入相关信息,在同一时刻只能有一个待添加设备存在

setDevice({params})

params

device:

  • 类型:json对象类型
  • 描述:(可选项)设备的json对象,传入json对象必须和startDiscovery、getLanDevices接口获取的json对象一致

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.setDevice({
  device:{}
 });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

setAliProvisionMode

切换配网模式

setAliProvisionMode({params})

params

linkType:

  • 类型:数字类型
  • 描述:(可选项)配网模式
  • 取值如下
    • 0:由native SDK自行决定在广播配网,热点配网,路由器配网,路由器配网中选择最优的配网方案
    • 1:设备路由器配网方案,在一般配网方案失败后,可切换到路由器方案
    • 2:设备广播配网方案,在一般配网方案失败后,可切换到广播配网方案
    • 3:手机热点配网方案,在一般配网方案失败后,可切换到手机热点方案
    • 4:设备热点配网方案
    • 5:设备广播配网方案,一对多配网模式
    • 6:蓝牙辅助配网方案,在一般配网方案失败后,可切换此方案
    • 7:二维码配网方案
    • 8:零配批量配网方案
  • 默认:0

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.setAliProvisionMode({
  linkType:0
 });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

startAddDevice

开始添加设备流程

startAddDevice()

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    state:'',           //字符串类型,返回类型
                        //取值如下:
                        //notifyPrecheck:配网预检查配网结果回调
                        //notifyProvisionPrepare:用户引导页(一键配网和热点配网会有相关回调,指引用户接入相关操作)
                        //notifyProvisioning:通知上层UI:正在进行配网
                        //notifyProvisioningNotice:手机热点配网状态回掉调,提示用户关闭热点并切回以前的wifi,optional
                        //notifyProvisioningNoticeForSoftAp:设备热点状态回调,status 状态码 1=提示应该切换到设备热点; 2=已经切换到设备热点 3=已发送数据(info里面会有"token") 4=应该切换回路由器 5=已经切换回路由器
                        //notifyProvisioningNoticeForQR:摄像头二维码配网模式相关回调
                        //notifyProvisionResult:通知上层UI:配网完成结果回调
   guideCode:0,         //数字类型;准备配网指导码,state == notifyProvisionPrepare时返回,1:一键配网对应页面流转:直接进入输入密码页,2:手机热点对应页面流转:用户引导开启热点页-》输入密码页,3:设备热点页面流转: e.g  引导切换热点页-》输入密码页,4:二维码配网页面流程
   status:0,            //数字类型,state == notifyProvisioningNoticeForSoftAp时返回,1=应该切换到设备热点,2=已经切换到设备热点,3=已发送数据。dic里面会有"token"、"service"等信息,可能支持的service:"ErrCode",@"OfflineOTA",@"OfflineLog",@"BatchEnrollee",4=应该切换回路由器 5=已经切换回路由器
   info:{},            //json对象,state == notifyProvisioningNoticeForSoftAp时返回
   qrcode:'',          //字符串类型,需要UI展现的二维码内容,state == notifyProvisioningNoticeForQR时返回
   device:{            //json对象,设备信息,state == notifyProvisionResult时返回
       productKey:'',     //字符串类型;设备productKey
        deviceName:'',     //字符串类型;设备名称
        mac:'',            //字符串类型;设备Mac
        ip:'',             //字符串类型;设备IP
        iotId:'',          //字符串类型;设备iotID
        devType:'',        //字符串类型;待配网设备联网类型:0代表wifi设备;1代表ethernet设备(网线连接):2代表路由器 ; @"ble_subtype_2" 代表蓝牙辅助配网设备
        token:'',          //字符串类型;设备配网完成后得到的token,用于下一步绑定用
        linkType:0,        //数字类型,指定配网方式 
                           //取值如下
                           //0:由native SDK自行决定在广播配网,热点配网,路由器配网,路由器配网中选择最优的配网方案
                           //1:设备路由器配网方案,在一般配网方案失败后,可切换到路由器方案
                           //2:设备广播配网方案,在一般配网方案失败后,可切换到广播配网方案
                           //3:手机热点配网方案,在一般配网方案失败后,可切换到手机热点方案
                           //4:设备热点配网方案
                           //5:设备广播配网方案,一对多配网模式
                           //6:蓝牙辅助配网方案,在一般配网方案失败后,可切换此方案
                           //7:二维码配网方案
                           //8:零配批量配网方案                    
        regProductKey:'',      //字符串类型;发现待配网设备的设备的productKey
        regDeviceName:'',      //字符串类型;发现待配网设备的设备的productNeme
        addDeviceFrom:'',      //字符串类型;云端返回待配网设备来源:“ROUTER”--代表路由器发现,“ZERO_DEVICE”代表零配发现
        productEncryptKey:'',  //字符串类型;产品加密密钥 
        securityRandom:'',     //字符串类型;加密过程安全随机数因子
        protocolVersion:'',    //字符串类型;协议版本
        traceId:'',            //字符串类型;埋点ID Tracker 
        productId:'',          //字符串类型;待配设备产品ID
        softApSsidPrefix:'',   //字符串类型;针对 linkType 为4,设备热点方案,自定义设备热点前缀
        softApNoNeedSwitchBackRouter:'', //布尔类型;针对 linkType 为4,设备热点方案,是否不需要切换回原WiFi, true 则不强制切换回原WiFi
        supportServices:[],    //数组类型,设备配网完成后得到的设备服务信息,设备热点配网模式下可能返回
        supportServicesVersion:{},//json对象类型;设备配网完成后得到的设备服务版本号,设备热点配网模式下可能返回
        fwVersion:''           //字符串类型;设备固件版本 
   },
   err:{              //json对象,错误信息,state == notifyPrecheck、notifyProvisionResult时返回

     code:,          //数字类型;错误码
     msg:'',        //字符串类型;错误信息
   }
  }
 }

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.startAddDevice(function(ret) {
    api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

toggleProvision

传入配网所需参数,UI 层在收到 notifyProvisionPrepare 事件,引导用户输入

toggleProvision({params})

params

ssid:

  • 类型:字符串类型
  • 描述:路由器 wifi 名称

password:

  • 类型:字符串类型
  • 描述:路由器 wifi 密码

timeout:

  • 类型:数字类型
  • 描述:(可选项)配网过程超时时间,以秒为单位
  • 默认:60

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.toggleProvision({
  ssid:'',
  password:'',
  timeout:60
 });

可用性

iOS、Android系统

可提供的1.0.0及更高版本

stopAddDevice

中止添加设备配网流程

stopAddDevice()

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.stopAddDevice();

可用性

iOS、Android系统

可提供的1.0.0及更高版本

getDeviceToken

获取已配网设备的token,用于设备绑定

getDeviceToken({params})

params

productKey:

  • 类型:字符串类型
  • 描述:产品类型

deviceName:

  • 类型:字符串类型
  • 描述:设备名称

timeout:

  • 类型:数字类型
  • 描述:(可选项)请求token超时时间
  • 默认:60

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    success:true,        //布尔类型;是否成功
    token:''             //字符串类型,token
    
}    

示例代码

var imSiLop= api.require('imSiLop');
imSiLop.getDeviceToken({
  ssid:'',
  password:'',
  timeout:60
 },function(ret) {
    api.alert({
            msg: JSON.stringify(ret)
        })
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

是否仍需要帮助? 请保持联络!
最后更新于 2024/06/14