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:
true
orfalse
显示系统原生导航栏,默认不显示 仅iOS
控制页面加载相关参数
group
:true
|false
表示是否是分组控制页groupId
:分组iddevTid
:设备idctrlKey
:设备控制码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" : "hub.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
:错误信息