blog
blog copied to clipboard
Hybird JS-SDK
JS-SDK
约定
- 只注入一个对象:HJApp, 示例:HJApp.navigator_setTitle()
- 异步callback
- 命名空间:navigator、ui等
- 参数:(JSON jsonString, Callback callbackString)
- 重载(callback可传,可不传)
- 容错处理
callback定义:
{
"status": 0,
"message": "xxx",
"data": {},
}
Error Code 定义
待定...
navigator
setTitle
设置导航栏标题。
格式:
HJApp.navigator_setTitle(String json, Callback callback);
json格式:
{
"title": "登录", // 登陆页面的标题
}
setAction
设置导航栏右侧按钮关联动作。
格式:
HJApp.navigator_setAction(String json, Callback callback);
json格式:
{
data:[
{
"icon": "http://share.png | share", // 导航栏右边添加图标,url或者local icon name(可约定默认本地图标名称)
"title": "分享", // 或者在更多中显示的名称
"actionName": "share" // JS调用的方法名
},
{
"icon": "http://share.png | share.png", // 导航栏右边添加图标,url或者local icon name(可约定默认本地图标名称)
"title": "分享", // 或者在更多中显示的名称
"actionName": "share" // JS调用的方法名
}
]
}
removeAction
移除导航栏右侧按钮关联动作。
格式:
HJApp.navigator_removeAction(Callback callback);
closeWindow
关闭当前窗口。
格式:
HJApp.navigator_closeWindow(Callback callback);
openURL
打开外部浏览器。
格式:
HJApp.navigator_openURL(String json, Callback callback);
json格式:
{
"url": "http://www.baidu.com"
}
事件机制
JS通知Native,JS调用Native方法
HJApp.event_emit(String json, Callback callback);
json定义:
{
"eventName": 事件名称
}
JS接收Native通知, 由Native来调用JS方法
HJSDK.fireEventFromNative(String eventName, String argsJSON);
举例:
Web开始音频播放
onAudioStop
xxx.bindEvent("onAudioStop", function() {
});
"onAudioStop" = [{function}, {function}];
ui
alert
显示提醒框。
格式:
HJApp.ui_alert(String json, Callback callback);
json格式:
{
"title": "提示", // 导航栏右边添加注册图标
"message": "确定修改用户名", // 名称:注册
"buttonTitle": "确定"
}
confirm
显示确认框。
格式:
HJApp.ui_confirm(String json, Callback callback);
json格式:
{
"title": "提示", // 导航栏右边添加注册图标
"message": "确定修改用户名", // 名称:注册
"positiveButtonTitle": "确定",
"negativeButtonTitle": "取消"
}
callback:
{
"status":
"message":
"data": {
"result": "positive" or "negative"
}
}
toast
显示提示框。
格式:
HJApp.ui_toast(String json, Callback callback);
json格式:
{
"message": "xxxx", // 消息内容
"duration": "2000", // 持续2秒
}
loading
显示或隐藏正在加载提示框。
格式:
HJApp.ui_loading(String json, Callback callback);
json格式:
{
"action": "show" or "hide", // 显示或隐藏
"title": "loading...", // 显示的标题
"masked": true or false // 是有全屏遮罩
}
BI
HJApp.bi_onEvent(String json, Callback callback);
参数:
{
"event_id":"xxxx", // 【必传】事件ID
"type_id":"xxxx", // 【可选】事件类型,默认为点击事件,1100
"data":{ // 【可选】扩展属性
"title":"xxxx",
"icon":"dxxxx",
"user":"xxxx"
}
}
callback:
{
"status":
"message":
}
device
info
获取设备相关信息。
格式:
HJApp.device_info(Callback callback);
callback:
{
"status":
"message":
"data": {
"device_id": "00000000", //
"bundle_id": 程序包ID
}
}
captureAudio
捕获音频。
格式:
HJApp.device_captureAudio(String json, Callback callback);
json格式:
{
"type": "amr", //
}
callback:
{
"status":
"message":
"data": {"filePath": "xxxxx"}
}
captureImage
捕获图片。
格式:
HJApp.device_captureImage(String json, Callback callback)
json格式:
{
"type": "jpg", //
}
callback:
{
"status":
"message":
"data": {"filePath": "xxxxx"}
}
captureVideo
捕获视屏。
格式:
HJApp.device_captureVideo(String json, Callback callback);
json格式:
{
"type": "mp4", //
}
callback:
{
"status":
"message":
"data": {"filePath": "xxxxx"}
}
fileTransfer
upload
上传文件。
App上传至统一的服务器,不需要Web侧指定
格式:
HJApp.fileTransfer_upload(String json, Callback callback);
json格式:
{
"uri": "xxxx", //路径
"mimeType": "xxx",
}
callback(多次回调):
{
"status":
"message":
"data": {
"url": "xxxxx",
"progress": 10 //100
}
}
download
下载文件。
格式:
HJApp.fileTransfer_download(String json, Callback callback);
json格式:
{
"uri": "xxxx"
}
callback(多次回调):
{
"data": {
"url": "xxxxx",
"progress": 10 //100
}
}
abort
终止上传或下载。
格式:
HJApp.fileTransfer_abort(String json, Callback callback);
json格式:
{
"uri": "xxxx", //
}
network
reachability 获取网络连接情况。
Constants
- UNKNOWN
- NONE
- WIFI
- WWAN 格式:
HJApp.network_reachability(Callback callback);
callback:
{
"status":
"message":
"data": {"status" : "WIFI"}
}