Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hybird JS-SDK #89

Open
mishe opened this issue Jan 25, 2016 · 0 comments
Open

Hybird JS-SDK #89

mishe opened this issue Jan 25, 2016 · 0 comments

Comments

@mishe
Copy link
Owner

mishe commented Jan 25, 2016

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"}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant