mishe / blog

前端碰上的问题或体会
230 stars 39 forks source link

Hybird JS-SDK #89

Open mishe opened 8 years ago

mishe commented 8 years ago

JS-SDK

约定

{
"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"}
}