edit

H5 开发文档

JS接口文档

1. SDK 加载

    Event:"HekrSDKReady"
  • SDK加载完毕时会发送此信号,所有SDK相关逻辑必须等到该信号发出后才可执行

代码示例:

function onSDKReady(callback){
    if (Hekr && Hekr.ready){
        callback(Hekr);
    }else{
        document.addEventListener('HekrSDKReady', function() {
            callback(Hekr);
        }, false);
    }
};
onSDKReady(function(sdk){
 .....
});

2. 平台

    Hekr.plantform
  • 当前平台 目前仅支持iOS, Android, Web

3. 打开第三方应用

Hekr.open(schemeurl)

参数

  • schemer 第三方应用的scheme URL 如tel://10086

页面控制

1. 打开新页面

  • openType:push新页面加载, current当前页加载, 默认在当前页面加载

http://hekr.me/templates/1/content.html?openType=push

  • showNavBar:trueorfalse 显示系统原生导航栏,默认不显示 仅iOS

控制页面加载相关参数

  • group:true|false表示是否是分组控制页
  • groupId:分组id
  • devTid:设备id
  • ctrlKey:设备控制码
  • ppk:产品唯一标识
  • lang:zh-CN|en-US语言(目前仅支持中文和英文)

2. 关闭页面

Hekr.close(animation)//关闭当前页面
Hekr.closeAll()//关闭该页面之后的所有页面

window.close() 将默认调用 Hekr.close(true)

参数 * animation:true or false 是否显示动画 仅支持openType=push打开的新页面

3. 页面回退

    Hekr.backTo(path,animation)//回退到指定页面,如果不存在该页面则什么也不做

参数

  • path 页面路径
  • animation 是否展示动画

示例代码

Hekr.backTo("home/index.html",true) //回退到home页

用户Token

1. 当前用户Token

Hekr.currentUser(function(user){

});

获取当前已登录用户的token

参数

  • callback 回调函数 当前用户信息如果未登录则返回undefined

返回值 * user: 用户Token 未登录则返回undefined

{
  "uid":"xxxxxx",
  "access_token":"xxxxxxxxxx"
}

2. 登录

Hekr.login(userName,password,function(user,error){

});

参数 userName:用户名 password:密码 * callback:回调函数

返回值 user: 用户token信息 失败时返回undefined error: 错误信息

3. 注销

Hekr.logout()

注销用户 将会触发onUser回调

4. 用户改变

Hekr.setUserHandle(function(user){

});

当用户发生改变时则调用callback

参数: * callback:回调函数 每次用户改变时都会被触发

返回值 * user: 用户Token信息 用户未登录时返回undefined

{
  "uid":"xxxxxx",
  "access_token":"xxxxxxx"
}

设备控制

1. 发送指令到设备

var command = {
  "action" : "appSend",
  "params" : {
    "devTid" : devTid,                   
    "ctrlKey"  : "xxxxxx",                
    "data" : {
      "raw":"48xxxxxxx"
    }
  }
};
Hekr.send(command,devTid,function(respond,error){

});

参数 command:指令协议 参考协议 该协议中包含的msgID和appTid字段将由SDK自动补全 devTid:设备ID * callback:回调函数

返回值 * respond:协议应答 参考协议

{
  "msgId" : 291,
  "action" : "appSendResp",
  "code" : 200,
  "desc" : "success",
  "params" : {
    "devTid" : "xxxxxxx",
    "ctrlKey" : "xxxxxxxxxx",
    "appTid" : "xxxxxxxx",
    "data" : {
      "raw" : "48xxxxx"
    }
  }
}
  • error:错误信息

2. 设备状态回馈

id filter = {"action" : "devSend",
            "params" : {
              "devTid" : xxxxxxx
            }
          };
Hekr.recv(filter,function(msg){

});
  • 接收设备消息

参数 filter:过滤条件 如果某个key的值为null表示只检查该key是否存在 callback:回调函数

返回值 * msg:符合条件的消息

设备配置发现

1. 当前SSID

Hekr.currentSSID(function(ssid){

});
  • 获取手机当前SSID

参数 * callback:回调函数

返回值 * ssid:SSID

2. 一键配置发现

Hekr.configSearch(ssid,pwd,function(dev){

});

参数 ssid:Wi-Fi名字 pwd:Wi-Fi 密码 callback:回调函数 会被调用多次 直到取消配置发现*

返回值 * dev: 发现的设备信息

{
  "devTid" : "ESP_xxxxxx",  
  "bindKey" : "xxxxxxxx",
  "mid" : "0cc175b9c0f1",
  "workMode" : 0,
  "MAC" : "08EFA809DE6D",
  "tokenType" : 2,
  "binVer" : "3.0.61.2",
  "binType" : "A",
  "SDKVer" : "3.0.61.2",
  "serviceHost" : "asia-dev.hekr.me",
  "servicePort" : 83,
  "SSID" : "HEKR-TEST"
}

3. 取消一键配置发现

Hekr.cancelConfigSearch();

取消正在进行中的一键配置

其它

1. 本地数据存储

    Hekr.saveConfig(data);

将数据存在本地 即使用户清除缓存也不会丢失 只支持存储JSON数据 图片等大型数据请存储在服务器上

参数 * data:JSON数据

2. 本地数据获取

    Hekr.getConfig(function(data){

});

参数 * callback 回调函数

返回值 * data:存储在本地的数据

3. 通知(跨页面数据传递)

Hekr.notify(data);

参数 * data 传递的数据

4. 通知回调(跨页面数据传递)

Hekr.setNotifyHandel(function(data){
});

参数 callback:回调函数 返回值 data:其它页面传来的数据

5. 二维码扫描

Hekr.QRScan(title,function(str){

});

参数 title:标题 callback:回调函数

返回值 * str:扫描到的二维码数据

6. 拍照并上传

Hekr.takePhoto(camera,function(url,error){

});

参数 camera:true拍照,false取相册 callback:回调函数

返回值 url:上传后文件的URL error:错误信息