氦氪JavaScript API文档

v1.0.0 by kj021320

关键词

流程说明

1. 与云端交互的js-api 需要登录

2. 与app移动设备交互的js-api需要native代码支持

3. LambdaTM 虚拟机 负责解析和执行sexp数据,该协议表示形式比json更简单更便捷,而且不只是数据,可以作为代码执行

4. JS地址 : hekr.js lambdaTM.js

J1接口说明

J1-1 用户登录认证

var h = Hekr.login( { accesskey: "" , tid: "imei/uuid" , channel:"code"  } );

参数

返回参数

J1-2 websocket往云端发送数据

Hekr.wssend  ( data );

代码示例:

var h = Hekr.login(...);
h.wssend("(+ 1 2 3)");

参数

返回参数 无

J1-3 websocket云端返回数据

Hekr.wsonmessage ( new callback(data){    } ) ;

代码示例:

var h = Hekr.login(...);
h.wssend("(+ 1 2 3)");
h.wsonmessage(
    new callback(evt){
            alert(evt.data);
        }
    );

请求参数

返回参数 无

J1-4 tcpsocket云端发送数据(需要native代码支持)

Hekr.tcpsend( { data:data } );

代码示例:

var h = Hekr.login(...);
h.tcpsend(
    {
        data:"(+ 1 2 3)"
    }
);

请求参数

返回参数 无

J1-5 tcpsocket云端接收数据(需要native代码支持)

Hekr.tcprecv( new callback(data){    } );

代码示例:

var h = Hekr.login(...);
h.tcpsend(
    {
        data:"(+ 1 2 3)"
    }
);
h.tcprecv(
    new callback(data){
    alert(data);
     }
);

请求参数

返回参数 无

J1-6 udp局域网数据发送(需要native代码支持)

暂无

J1-7 udp局域网数据接收(需要native代码支持)

暂无

J1-8 wifi一键连接(需要native代码支持)

Hekr.hekrconfig( { ssid : "ssid" , password : "password" , time:second }  );

hekrconfig wifi配置技术,采用最先进的技术,能够1秒完成wifi ssid和密码传递。

请求参数

返回参数

J1-9 接收云端组播数据

Hekr.onmessage( function( uid , tid , listdata ){
} );

代码示例:

var h = Hekr.login(...);
h.onmessage( function( uid , tid , listdata ){
    console.log(listdata);
} );

返回参数

J2接口说明

J2-1 LambdaTM 数据读取解析

var r = new LambdaTM.LambdaTMReader(
        new LambdaTM.StringReader('( "asdasdsadsad" "sssssssss" 1 2 3  )')
    );
var lisp = r();

请求参数

返回参数

J2-2 LambdaTM 数据解析为列表

var list = LambdaTM.sexp2list( lispdata );

代码示例:

var r = new LambdaTM.LambdaTMReader(
        new LambdaTM.StringReader('( "asdasdsadsad" "sssssssss" 1 2 3  )')
    );
var lisp = r();
LambdaTM.sexp2list(lisp);

请求参数

返回参数 无

J2-3 LambdaTM 宏执行数据

该方法会把第一个符号当作宏执行,其后的数据作为参数

LambdaTM.calljsmacro(lisp);

代码示例:

var r = new LambdaTM.LambdaTMReader(new LambdaTM.StringReader('(add 1 2 3)')) ;
var lisp = r();
function add(x,y,z){
  return x+y+z;
}
LambdaTM.calljsmacro(lisp);

请求参数

返回参数

J2-3 LambdaTM 运行数据

该方法会把第一个符号当作函数执行,其后的数据作为参数,函数通过env中查找获取

LambdaTM.LispEval.lisp_eval( env , lisp );

代码示例:

var env = new LambdaTM.Env();
add = function (){
  this.apply = function ( env, args){
    return Util.proxycall(this.fun,env,args);
  }
  this.fun = function(env , b , c , d , e){
    return  b + c + d + e;
  }
  return this;
}
add.prototype = new LambdaTM.LambdaFunction();
env.setLocal("add",new add());
var r = new LambdaTM.LambdaTMReader(
        new LambdaTM.StringReader('(add 1 2 3 (add 2 3 4 5) )')
    );
var lisp = r();
LambdaTM.LispEval.lisp_eval( env , lisp );

请求参数

返回参数

J3 JSSDK

所有接口均置于Hekr命名空间下

Base

SDK 加载

    Event:"HekrSDKReady"

代码示例:

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

平台

    plantform

打开第三方应用

open(schemeurl)

参数

页面控制

打开新页面

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

关闭页面

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

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

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

页面回退

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

参数

示例代码

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

J3-2 设备

设备列表

getDevices(callback(list,error))

参数

代码示例:

Hekr.getDevices(function(list,error)){
  if (list){
    ....
  }
}

设备重命名

renameDevice(tid,name,callback(ret,error))

参考C1-5

回调参数 + ret: true or false + error:错误信息

参数 + tid 设备ID + name 名字 + callback 回调函数

设备解绑

removeDevice(tid,callback)

参考C1-18

回调参数 + ret:true or false

参数 + tid 设备ID + callback 回调函数

检查设备固件更新

    checkDeviceUpdate(tid,mid,version,type,callback)

参考C2-4

回调参数 + json:更新信息 + error:错误信息

参数 + tid 设备ID + mid 设备型号ID + version 设备当前固件版本 + type 设备当前固件版本类型 + callback 回调函数

设备报警信息

warningList(tid,callback)

回调参数 + list 报警信息列表

参数 + msg 反馈信息 + callback 回调

控制

设备控制

sendMsg(tid,msg,type)

参数

代码示例:

Hekr.sendMsg("xxxxx","(+1 1)");

设备状态回馈

setMsgHandle(tid,handle(str))

回调参数 + str: 设备下发的onmessage信息

参数

代码示例:

Hekr.setMsgHandle("xxxxx",function(str){

});

授权

设备授权列表

    deviceAuthList(tid,callback)

回调参数 + list 授权信息列表

参数 + tid 设备ID

取消授权

deviceDeauth(tid,from,grant,callback)

回调参数 + ret trueorfalse 是否成功

参数 + tid 设备ID + from 授权用户ID + grant 被授权用户ID + callback 回调

设备授权

deviceAuth(tid,grant,desc,callback)

回调参数 + ret trueorfalse 是否成功

参数 + tid 设备ID + grant 被授权用户ID + desc 介绍 + callback 回调

定时

创建定时任务

createScheduler(tid,name,cronexpr,code,desc,callback)

回调参数 + obj 定时任务信息

参数 + tid 设备ID + name 定时任务名字 + cronexpr 任务计划执行 Quartz Cron表达式 + code 执行代码 + desc 介绍 + callback 回调

定时任务列表

schedulerList(tid,callback)

回调参数 + list 定时任务列表

参数 + tid 设备ID + callback 回调

分组

设备分组

setGroup(tid,gid,name,callback(ret,error))

参考C1-12

回调参数 + ret: true or false + error:错误信息

参数

获取所有分组

getGroups(callback(list,error))

参考C1-9

回调参数 + list: 分组信息数组 + error:错误信息

参数

创建分组

createGroup(name,callback(ret,error))

参考C1-8

回调参数 + ret: true or false + error:错误信息

参数

重命名分组

renameGroup(gid,name,callback(ret,error))

参考C1-11

回调参数 + ret: true or false + error:错误信息

参数

删除分组

removeGroup(gid,callback(ret,error))

参考C1-10

回调参数 + ret: true or false + error:错误信息

参数

J3-11 设备配置

一键配置

config(ssid,pwd,callback(ret,error))

回调参数 + ret: true or false + error:错误信息

参数

手机是否已连接软AP

isConnectSoftAP(callback(ret))

参考M2-3

回调参数 + ret: true or false + error:错误信息

参数

获取AP列表

getAPList(callback(list,error))

参考M2-4

回调参数 + list: ap信息列表 + error:错误信息

参数

取消一键配置

cancelConfig()

取消正在进行中的一键配置 参考M2-2

用户

当前用户

currentUser(callback(user))

获取当前已登录用户

回调参数 + user: 用户信息

{"uid":"xxxxxx"}//用户已登录
//or
undefined //用户未登录

参数

匿名登录

    guestLogin(callback)

以客户身份登录

回调参数 + obj 成功:用户信息 失败:undefined

登出

logout()

登出用户 将会触发onUser回调

用户改变

onUser(callback(user))

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

回调参数 + user: 用户信息

{"uid":"xxxxxx"}//用户已登录
//or
undefined //用户未登录

参数

获取用户配置

getPreferences(callbck)

参考C1-16

回调参数 + config:JSON格式配置信息 + error:错误信息

参数

更新用户配置

setPreferences(json,callback)

参考C1-17

回调参数 + json:用户配置信息JSON数据 + ret:true or false

参数

其它

本地数据存储

    saveConfig(obj)

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

参数 + obj JSON数据(js object)

本地数据获取

    getConfig(callback)

取得J3-25存储的数据

回调参数 + obj J3-25存储的数据

参数 + callback 回调函数

用户反馈

report(msg,callback)

回调参数 + ret trueorfalse 是否成功

参数 + msg 反馈信息 + callback 回调

通知(跨页面数据传递)

notify(data)

参数 + data 传递的数据

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

setNotifyHandel(func)

参数 + func 回调data

J3快速开始

JSSDK提供App底层服务和面向用户的底层API,开发者可以使用我们API开发出个性化定制设备页面,我们对于开发者的要求是:

SDK

下载地址 iOS android(稍后推出)

准备工作

模块开发

目录结构

MODEL_NAME (设备的model id)
  ├── version (版本号)
  ├── index.html (入口文件)
  ├── style
  │   ... xxx.css
  ├── scripts
  │   ... xxx.js
  ├── images
  │   ... xxx.png

调试运行

发布

请联系我公司相关业务人员