通用服务
通用服务
网页生命周期
1.BdHiJs.appnative.webview.load 打开新窗口加载当前应用页面(用于应用内页面的跳转,具有本应用的权限、JS SDK能力)
如果加载的URL为非应用可信域名,则该函数不做任何操作(console中应提示error信息以告知开发者错误原因:{URL}包含不可信域名)。 旧应用兼容:旧应用因未设置可信域名,则按原有逻辑,不做可信域名校验。
BdHiJs.appnative.webview.load('https://...');
2.BdHiJs.appnative.webview.openURL 打开普通新窗口加载页面 (用于应用打开一个url,不具有JS SDK能力)zhongwojiu
如果URL符合如流应用调起规则,则进入如流应用调起规则流程,如果打开的是一个如流应用,则清空webview栈(含之前应用)的所有webview窗口。
BdHiJs.appnative.webview.openURL('https://...?_bdAppAgentId=233&_bdGroupId=32344323');
// 如果url中附带参数:
// _bdAppAgentId(应用id)
// _bdGroupId(前提是存在_bdAppAgentId,_bdGroupId可选,表示群应用)
// 则校验应用URL,若校验成功则使用应用浏览器打开,否则,使用普通浏览器打开
3.BdHiJs.appnative.page.onStart 页面启动
function onBdHiJsReady() {
BdHiJs.appnative.page.onStart = function () {
// 处理页面启动
};
}
4.BdHiJs.appnative.page.onPause 页面暂停
function onBdHiJsReady() {
BdHiJs.appnative.page.onPause = function () {
// 页面切入后台隐藏时,会调用该方法
};
}
5.BdHiJs.appnative.page.onResume 页面恢复
function onBdHiJsReady() {
BdHiJs.appnative.page.onResume = function () {
// 页面切入前台展示时,会调用该方法
};
}
6.BdHiJs.appnative.app.quit 退出页面
BdHiJs.appnative.app.quit({
data: {
animated: true|false // 可选,Boolean,是否动画方式退出
}
});
6.BdHiJs.appnative.webview.visibilityChange 页面可见状态变更通知
BdHiJs.appnative.webview.visibilityChange({
onchange: function (data) {
data.visibility // 必选,String,页面可见状态。'visible':可见;'hidden':不可见
}
});
7.BdHiJs.appnative.webview.disablePopGesture 禁用页面返回手势
BdHiJs.appnative.webview.disablePopGesture({
data: {
disable: true // 必填,Boolean,是否关闭当前页面的返回手势
},
onsuccess: function(data) {
// 关闭结果
data.success // 必填,布尔值,关闭成功或者失败。实际使用中,不用考虑失败场景,目前端上没有失败逻辑。
},
onfail: function(err) {
// 接口调用失败
// err为字符串,说明接口调用失败原因
}
});
独立应用生命周期
1.BdHiJs.appnative.app.canOpen 是否能打开独立应用
BdHiJs.appnative.app.canOpen({
data: 'xxxx', // 必选,String,要打开的应用的schema(iOS、Android均支持)或包名(仅Android支持,包名格式为:packageName;activetyName)
onsuccess: function (data) {
// data 是 Boolean 类型,表示能否打开
},
onfail: function (err) {
}
});
2.BdHiJs.appnative.app.open 打开独立应用
BdHiJs.appnative.app.open({
data: 'xxxx', // 必选,String,要打开的应用的schema(iOS、Android均支持)或包名(仅Android支持,包名格式为:packageName;activetyName),
onsuccess: function (data) {
// data 是 Boolean 类型,表示打开结果
// true:打开成功
// false:打开失败
},
onfail: function (err) {
}
});
3.BdHiJs.appnative.app.startApsPlugin(仅Android
4.BdHiJs.appnative.activity.start (仅Android)
网页间传递消息
1.BdHiJs.appnative.webview.addMsgKey 注册页面接收消息的 Key
BdHiJs.appnative.webview.addMsgKey({
data: 'xxxx', // 必选,String,自定义key
onsuccess: function () {
// 注册成功
},
onfail: function () {
// 注册失败
}
});
2.BdHiJs.appnative.webview.removeMsgKey 移除页面接收消息的 Key
BdHiJs.appnative.webview.removeMsgKey({
data: 'xxxx', // 必选,String,自定义key
onsuccess: function () {
// 移除成功
},
onfail: function () {
// 移除失败
}
});
3.BdHiJs.appnative.webview.msgSend 发送页面消息
BdHiJs.appnative.webview.msgSend({
data: {
key: 'xxxx', // 必选,String,接收消息的页面Key
host: 'xxxx', // 必选,String,接收消息的页面域名
msg: '{}' // 必选,JSON字典,自定义消息体
},
onsuccess: function () {
// 发送成功
},
onfail: function () {
// 发送失败
}
});
4.BdHiJs.appnative.webview.msgRcvListener 接收页面消息
function onBdHiJsReady() {
BdHiJs.appnative.webview.msgRcvListener = function (key, msg) {
}
}
对话框 Dialog
1.BdHiJs.appnative.dialog.showList 显示列表对话框
BdHiJs.appnative.dialog.showList({
data: {
// data应当为JSON字符串。BdHiJs.sdk.version.get() >= 16,data支持js对象
count: 2, // list 元素个数
cancelable: 1, // 是否可被取消
cancelname: 'Cancel', // 取消按钮显示名
title: 'Title', // 对话框标题
desc: 'hello', // 对话框描述
list: [
{
// 对话框按钮列表
name: 'NameList1', // 必填,String,列表项显示名
value: 'ValueList1', // 必填,String,列表项点击返回值
toast: 'ToastList1' // 选填,String,列表项提示语
},
{
name: 'NameList2',
value: 'ValueList2',
toast: 'ToastList2'
}
]
},
onsuccess: function () {
// 参数解析成功
// 已显示对话框
},
onfail: function (err) {
// 参数解析失败
// 未显示对话框
},
listener: function (data) {
// 用户点击列表项
// data 是列表项点击返回值
}
});
2.BdHiJs.appnative.dialog.showYesno 显示Yes No对话框
BdHiJs.appnative.dialog.showYesno({
data: {
// data应当为JSON字符串。BdHiJs.sdk.version.get()>= 16,data支持js对象
count: 1,
cancelable: 1,
title: 'Title',
desc: 'hello',
yes: {
name: 'Submit',
value: 'SubmitValue',
toast: 'SubmitToast'
},
no: {
name: 'Cancel',
value: 'CancelValue',
toast: 'CancelToast'
}
},
onsuccess: function () {
},
onfail: function (err) {
},
listener: function (data) {
}
});
3.BdHiJs.appnative.dialog.showCheckbox 显示复选框对话框
BdHiJs.appnative.dialog.showCheckbox({
data: {
// data应当为JSON字符串。BdHiJs.sdk.version.get()>= 16,data支持js对象
'count': 1,
'cancelable': 1,
'title': '班车提醒(提前15分钟)',
'list': [
{
'name': '同时添加到手机日历',
'value': 'ValueList1',
'isSelected': '1'
}
],
'yes': {
'name': 'Submit',
'value': 'SubmitValue',
'toast': 'SubmitToast'
},
'no': {
'name': 'Cancel',
'value': 'CancelValue',
'toast': 'CancelToast'
}
},
onsuccess: function () {
},
onfail: function (err) {
},
listener: function (data) {
}
});
提示框 Toast
1.BdHiJs.appnative.toast.show 显示提示框
BdHiJs.appnative.toast.show({
text: 'This is a toast !', // 兼容旧版本
status: 1, // 兼容旧版本
data: {
text: 'This is a toast !', // 必填,String,提示内容
status: 1|2|3, // 可选,Number,提示状态。1:警告;2:成功;3:失败。不填写默认为 2。仅支持iOS。Android没有提示状态。
time: 0|1 // 可选,Number,提示时长。0:短时间展示;1:长时间展示。仅支持Android。iOS根据提示内容长度自动计算提示时间。
},
ondismiss: function () {
// 提示框已消失
},
onfail: function (err) {
}
});
加载框 Loading
1.BdHiJs.appnative.loading.show 显示加载框
BdHiJs.appnative.loading.show('标题');
2.BdHiJs.appnative.loading.dismiss 隐藏加载框
BdHiJs.appnative.loading.dismiss();
设备振动
1.BdHiJs.appnative.vibrator.vibrate
BdHiJs.appnative.vibrator.vibrate(milliseconds);
// milliseconds,Number,要震动的时间长度要求大于0,单位毫秒。iOS并不支持震动时长
2.BdHiJs.appnative.vibrator.vibrateCycle(仅Android)
页面抖动
1.BdHiJs.appnative.kicker.shake
BdHiJs.appnative.kicker.shake();
状态栏
1.BdHiJs.appnative.statusbar.custom(仅iOS)定制状态栏样式
BdHiJs.appnative.statusbar.custom({
data: '{"style": "1|2"}', // 必填,字符串(BdHiJs.sdk.version.get() >= 15也支持整数),设置导航栏样式。1:黑色;2:白色
onsuccess: function () {
// 设置成功
}
onfail: function () {
// 设置失败
},
});
2.支持通过 URL 参数控制
hi_statusbar_style(仅iOS)定制状态栏样式
hi_statusbar_color(仅Andorid)定制状态栏颜色
导航栏
1.BdHiJs.appnative.navigationbar.bgcolor 导航栏背景色
BdHiJs.appnative.navigationbar.bgcolor({
data: {
"color": "#ffffff"
}, // 必填,color类型是String,格式为十六进制色值(#ffffff)
onfail: function () {
// 设置失败
},
onsuccess: function () {
// 设置成功
}
});
//同时支持URL参数控制
//hi_navi_bgcolor 导航栏背景色
2.BdHiJs.appnative.navigationbar.custom(仅iOS)全面定制导航栏
BdHiJs.appnative.navigationbar.custom({
data: {
"bgColor" : "#ffffff",
"itemColor" : "#ffffff",
"titleColor": "#ffffff"
}, // 必填,color类型是String,格式为十六进制色值(#ffffff)。分别为背景颜色、左右按钮文字颜色、中间标题颜色
onfail: function () {
// 设置失败
},
onsuccess: function () {
// 设置成功
}
});
3.自定义导航栏进度条颜色
hi_navi_progress_color=ffffff(仅iOS)
4.BdHiJs.appnative.title.setText 导航栏中间标题 Title
BdHiJs.appnative.title.setText("customTitle"); // 必填, 要展示的字符串。无回调
//同时支持URL参数控制
//hi_navi_title 导航栏标题
//hi_navi_title_color 导航栏标题颜色
5.BdHiJs.appnative.title.setTab 定制Navigation Title UISegmentedControl
BdHiJs.appnative.title.setTab({
data: {
// data应当为JSON字符串,要展示的title的tab描述字符串,数量限制在2-3个,超过则不显示。BdHiJs.sdk.version.get() >= 16,data支持js对象
count: 2,
title: [
{
name: 'title1', // 显示名,字符串,必填
value: 'ValueTab1', // 值,字符串,必填
default_show: 1, // 是否默认显示,数字,可选。1:默认显示
},
{
name: 'title2',
value: 'ValueTab2'
}
];
},
onsuccess: function (data) {
// 设置结果
data.success 必填认证成功或者失败
},
onfail: function (err) {
// 接口调用失败
// err为字符串,说明接口调用失败原因
},
listener: function (result) {
// 被点击后的value被传到listener中
}
});
6.BdHiJs.appnative.title.setSelect(仅Android)
7.BdHiJs.appnative.title.textClick 定制Navigation Title 点击事件
BdHiJs.appnative.title.textClick({
data: {
// data应当为JSON字符串。BdHiJs.sdk.version.get()>= 16,data支持js对象
'text': 'titleName',
'iconId': 14;
},
onsuccess: function (data) {
// 设置结果
data.success,必填,Boolean,设置成功或者失败
},
onfail: function (err) {
// 接口调用失败
// err为字符串,说明接口调用失败原因
},
listener: function (result) {
}
});
8.BdHiJs.appnative.menu.setButton 导航栏右侧菜单 Menu
BdHiJs.appnative.menu.setButton({
data: {
// data应当为JSON字符串。BdHiJs.sdk.version.get()>= 16,data支持js对象.其中name是button上展示的字,value是点击button传输至listener中值。
'name': '最多6个字',
'value': 'vvv';
},
onsuccess: function (data) {
// 设置结果
data.success 必填 设置成功字符串信息
},
onfail: function (err) {
// 接口调用失败
// err为字符串,说明接口调用失败原因
},
listener: function (result) {
}
});
9.BdHiJs.appnative.menu.setSelect 定制Navigation Right Menu(点击弹出actionSheet)
BdHiJs.appnative.menu.setSelect({
data: {
// data应当为JSON字符串,。BdHiJs.sdk.version.get()>= 16,data支持js对象
'count': 2, // 其中name是展示的名字,value是点击这个select之后要传到listener的值,后面的default是标记了那个select是被选择了的,第一个default为1的有效
'title': [
{
'name': 'title1',
'value': 'ValueTab1',
'default_show': '1'
},
{
'name': 'title2',
'value': 'ValueTab2'
}
];
},
onsuccess: function (data) {
data.success
},
onfail: function (err) {
// 接口调用失败
// err为字符串,说明接口调用失败原因
},
listener: function (result) {
// 被点击后的value被传到listener中
}
});
10.BdHiJs.appnative.menu.setList(仅Android)
11.BdHiJs.appnative.menu.setNone 将右侧barItem设置为none
BdHiJs.appnative.menu.setNone({
onsuccess: function () {
// 设置成功,无失败场景
},
onfail: function () {
// 设置失败
}
});
12.BdHiJs.appnative.menu.setDefault 将右侧barItem设置为默认外观
BdHiJs.appnative.menu.setDefault({
// 默认按钮外观上为。。。,点击后可以“发送给朋友”“刷新”“复制链接”“用浏览器打开
onsuccess: function () {
// 设置成功,无失败场景
},
onfail: function () {
}
});
13.BdHiJs.appnative.menu.setIcon 右侧barItem定制icon
BdHiJs.appnative.menu.setSelect({
data: {
// data应当为JSON字符串,BdHiJs.sdk.version.get()>= 16,data支持js对象
'count': 2, // 其中count值要同menu的个数相等。iconId是图标的id,name是展示的名字,value是点击这个list之后要传到listener的值。
'menu': [
{
'icon': 1,
'name':'nnn'
'value': 'nnnValue',
'default_show': '1'
},
{
'icon': 2,
'name':'vvv'
'value': 'vvvValue'
}
];
},
onsuccess: function (data) {
data.success // 必填,设置成功字符串信息
},
onfail: function (err) {
// 接口调用失败
// err为字符串,说明接口调用失败原因
},
listener: function (result) {
// 被点击后的value被传到listener中
}
});
输入框
1.BdHiJs.appnative.input.showInputBar 打开输入键盘
BdHiJs.appnative.input.showInputBar({
data: {
max_length: 500, // 可选, Number。最大输入字符长度。默认为2000,最大限制为2000。
placeholder: "请输入评论", // 可选,String。输入框提示内容,不可编辑。默认为:输入消息。
value: "", // 可选,String。输入框内容,可编辑。默认为空。
id: "comment1", // 可选,String。作为缓存文本内容的唯一标识。
fixed: true, // 可选,Boolean。键盘是否一直固定底部。true: 始终固定底部, false: 隐藏不显示。默认为 false。
becomeFirstResponder: true, // 可选,Boolean。是否弹起键盘。true: 弹起,false: 不弹起。默认为true。
custom_bar: [], // 可选,Array。需要的+号面板辅助功能。不传或者为空数组代表不需要辅助功能,能以数组内的顺序排序。支持的辅助功能有:
// 'emotion': 表情
// 'camera': 相机
// 'image': 相册
// 'file': 文件
// 'voiceInput': 语音输入文本
file_options: {
// 可选,Object。调起+号面板文件、相册功能需要的参数
// 相机、相册相关参数
original: true, // camera、image 必填,Boolean。是否需要原图,如果需要原图,则不压缩图片。
thumb: true, // camera、image 必填,Boolean。是否需要缩略图。
maxLimit: 1, // image 必填,允许用户选择的最大个数。
// 文件相关参数
accept: [], // 可选,Array。指定显示文件的类型,不填则全显示。
multiple: 1, // 可选,Number。允许用户选择最大文件个数。
maxSize: 1 // 可选,Number。文件最大大小。单位为M
},
custom_voice_input_options:{
// 可选,Object。调起+号面板语音输入文本需要的参数
// 语音输入模型的相关参数,如果要选的话,app_id,pid,app_key必须一起填写
app_id: "10000", // 可选,认证相关,app_id,pid,app_key必须一起填写
pid: "10000", // 可选,认证相关,app_id,pid,app_key必须一起填写
app_key: "xxx.xxxxx.xx.xxxxxx", // 可选,认证相关,app_id,pid,app_key必须一起填写
url: "https://vse.baidu.com/v2"// 可选,认证相关,如果未上线,请填写测试服务地址
}
},
onsuccess: function (data) {
data.top_y // 必填,Number。键盘上边距离屏幕顶部的距离。
},
onfail: function (err) {
// 接口调用失败
// err为字符串,说明接口调用失败原因
},
listener: function (data) {
// 用户输入结果
// 输入框的输入结果
data.id // 可选,String。缓存文本内容的唯一标识。
data.input // 可选,Array。输入内容的数组。元素格式如下:
// 文本:{type:”text”, content:”123”}
// 表情:{type:”face”, content:”face01.png”}
// 文件选择结果
data.files // 可选,Array。输入框选择文件返回的结果。数据格式参考file.chooseFile接口的返回结果
}
});
2.BdHiJs.appnative.input.showEmotion 打开输入表情框
BdHiJs.appnative.input.showEmotion({
onsuccess: function (data) {
data.success // 设置成功,bool类型 无失败场景
},
onfail: function () {
},
listener: function (result) {
//所点击表情的 url 封装在 json 中返回
result.id // string 调用 input.show 时传入的id,如未指定,则无此字段
result.emotion // string 表情名称
reslut.emotion_key // string 表情关键字
}
});
3.BdHiJs.appnative.input.setHeightChangeListener 监听键盘高度
BdHiJs.appnative.input.setHeightChangeListener({
onsuccess: function (data) {
data.success // 设置成功,bool类型 无失败场景
},
onfail: function () {
},
listener: function (result) {
// json返回格式 {id:”123”,top_y:400}
result.id // string 调用 input.show 时传入的id,如未指定,则无此字段
result.top_y // int 输入框的顶部在屏幕中的y轴
}
});
图片
1.BdHiJs.appnative.pic.show 浏览图片
BdHiJs.appnative.pic.show({
data: {
files: [ { url: https://..., name: pic1}, ... ], // 可选,数组(元素未url地址和图片名),原图。优先使用 files 显示原图。
urls: [ https://..., ... ], // 可选,数组(元素为url地址),原图。如果 files 不存在,则使用 urls 显示原图
thumbs: [ ...., ....], // 可选,数组(元素为缩略图数据的base64编码),缩略图。先显示缩略图,再加载原图。如果原图地址不存在,则只显示缩略图。
// - iOS端在 BdHiJs.sdk.version.get() >= 15 时新增
// - Android端暂无
position: 0, // 可选,整数,默认显示第几张图片
},
onfail: function(err) {
},
onsuccess: function() {
// 已显示图片浏览器
}
});
2.BdHiJs.appnative.pic.takePic 拍照图片上传
BdHiJs.appnative.pic.takePic({
data: {
thumb: 1, // int,是否需要返回base64缩略图,1为返回, 0为不返回,默认不返回
original: 1, // int,是否拍照直接上传原图。1 为上传原图,0为上传大图, 默认上传大图。大图本地压缩到1M内,影响上传速度看需求选择该参数,建议大图
},
onfail: function(err) {
err.err // 失败的字符串描述
},
onsuccess: function(data) {
data.succ // bool 成功yes
},
listener: function (result) {
result.page // int 页数, 从1开始。因base64缩略图可能数据过大,故使用分页机制返回数据
result.total // int 返回照片数据的张数,当前只支持一张图片
result.datas // json数组 [{“lid”:”lid1”, “thumb”:”BASE64”}]包含本地文件标识符lid和缩略图base64字符thumb(目前实现为一页只传一张图片数据)
}
});
3.BdHiJs.appnative.pic.pickPics 选择图片
BdHiJs.appnative.pic.pickPics({
data: {
thumb: 1, // int,是否需要返回base64缩略图,1为返回, 0为不返回,默认不返回
original: 1, // int,是否拍照直接上传原图。1 为上传原图,0为上传大图, 默认上传大图。大图本地压缩到1M内,影响上传速度看需求选择该参数,建议大图
maxLimit: 9, // int,范围1-9, 最多选择的图片张数
},
onfail: function(err) {
err.err // 失败的字符串描述
},
onsuccess: function(data) {
data.succ // bool 成功yes
},
listener: function (result) {
result.page // int 页数, 从1开始。因base64缩略图可能数据过大,故使用分页机制返回数据
result.total // int 返回照片数据的张数,当前只支持一张图片
result.datas // json数组 [{“lid”:”lid1”, “thumb”:”BASE64”}]包含本地文件标识符lid和缩略图base64字符thumb(目前实现为一页只传一张图片数据)
}
});
8.BdHiJs.appnative.pic.startUpload 执行图片上传任务
BdHiJs.appnative.pic.startUpload({
data: {
lids: [lid, lid2] // json格式,文件信息(要上传的图片lid或者失败需要重试的图片lids)
},
onfail: function(err) {
err.err // 失败的字符串描述
},
onsuccess: function(data) {
data.succ // 成功开始上传
}
});
9.BdHiJs.appnative.pic.addUploadStatusListener 图片上传监听
BdHiJs.appnative.pic.addUploadStatusListener({
data: {
lids: [lid, lid2] // json数组,本地文件唯一标示
},
onfail: function(err) {
err.err // 操作失败,返回状态信息
},
onsuccess: function(data) {
data.succ // bool 操作成功处理
},
listener: function (result) {
result.lid // string 本地唯一标识
result.fid // stirng 服务器唯一标识,上传完成返回
result.fmd5 // string 文件md5,用于下载,上传完成返回
result.taskid // int 上传任务ID,用于下载,上传完成返回
result.progress // int 返回上传进度,0-100
result.status // int 文件状态必选
// 0 ready 已准备好
// 1 progress 上传中
// 2 success 上传完成
// -1 notexist 文件不存在
// -2 suspended 上传被暂停
// -3 cancelled 上传被取消
// -4 failed 上传失败
}
});
10.BdHiJs.appnative.pic.removeUploadStatusListener 图片上传监听移除
BdHiJs.appnative.pic.removeUploadStatusListener();
11.BdHiJs.appnative.pic.getUploadStatus 图片上传状态查询
BdHiJs.appnative.pic.addUploadStatusListener({
data: {
lids: [lid, lid2] // json数组,本地文件唯一标示
},
onfail: function(err) {
err.err // 操作失败,返回状态信息
},
onsuccess: function(data) {
//返回参数data为json数组
result.lid // string 本地唯一标识
result.fid // stirng 服务器唯一标识,上传完成返回
result.fmd5 // string 文件md5,用于下载,上传完成返回
result.taskid // int 上传任务ID,用于下载,上传完成返回
result.progress // int 返回上传进度,0-100
result.status // int 文件状态必选
// 0 ready 已准备好
// 1 progress 上传中
// 2 success 上传完成
// -1 notexist 文件不存在
// -2 suspended 上传被暂停
// -3 cancelled 上传被取消
// -4 failed 上传失败
}
});
文件
1.BdHiJs.appnative.file.getStatus 获取文件状态
BdHiJs.appnative.file.getStatus({
data: {
fids: [lid, lid2], // 必选 json数组,文件信息。BdHiJs.sdk.version.get() >= 16,data支持js对象
},
onfail: function(err) {
err.err // 操作失败 返回状态信息
},
onsuccess: function(data) {
// 返回参数data为json数组
[
{
"fid": "fid1",
"status": 0
},
{
"fid": "fid2",
"status": 1,
"progress": 30
}
]
data.fid // string 必选, 本地唯一标示
data.progress // int 返回上传进度,0-100
data.status // int 文件状态 必选
// 0 notexist 不存在
// 1 downloading 下载中
// 2 suspended 下载被暂停
// 3 cancelled 下载被取消
// 4 failed 下载失败
// 5 cancelled 已经准备好
// 6 failed 删除
}
});
2.BdHiJs.appnative.file.setStatusListener 监听文件状态变更
BdHiJs.appnative.file.setStatusListener({
data: {
fids: [lid, lid2], // 必选 json数组,文件唯一标示信息。BdHiJs.sdk.version.get()>= 16,data支持js对象
progress_step:1 // 可选 int 下载进度步长,如流在文件下载进度的变更大于等于此值时,才会告知web app 取值范围为1~100,默认为1
},
onfail: function(err) {
err.err // 操作失败 返回状态信息
},
onsuccess: function(data) {
// 操作成功
},
listener: function (result) {
// listener中的result为json数组
result.lid // string 必选, 本地唯一标示
result.progress // int 必选,返回进度,0-100
result.status // int 文件状态必选
// 0 notexist 不存在
// 1 downloading 下载中
// 2 suspended 下载被暂停
// 3 cancelled 下载被取消
// 4 failed 下载失败
// 5 cancelled 已经准备好
// 6 failed 删除
}
});
3.BdHiJs.appnative.file.removeStatusListener 移除监听
BdHiJs.appnative.file.removeStatusListener();
4.BdHiJs.appnative.file.viewContent 浏览文件内容
BdHiJs.appnative.file.viewContent({
data: {
// 要浏览的文件信息
fid : “123”, // 必选 string,文件唯一标示信息。BdHiJs.sdk.version.get()>= 16,data支持js对象
name: “贴吧“ // 必选 string,主文件名(不包含后缀)
extension :“apk” // 必选 string,文件扩展名,目前只支持小写字母,且不要带『.』。
thumbnail_url :"https://" // 可选 stirng,文件缩略图下载地址
download_url : "https://" // 必选 string,文件下载地址
download_params : "\" // 可选 json字典,从download_url下载文件所需的参数
file_size : 1111 // 必选 long,文件大小
},
onfail: function(err) {
// 操作失败 返回状态信息
},
onsuccess: function(data) {
// 操作成功 如流开始处理
}
});
5.BdHiJs.appnative.file.openList 打开文件列表
BdHiJs.appnative.file.openList({
// 通过此接口,浏览如流内已下载好的文件列表。
onfail: function() {
// 操作失败 返回状态信息
},
onsuccess: function() {
// 操作成功 如流开始处理
}
});
6.BdHiJs.appnative.file.chooseFile 文件选择器
BdHiJs.appnative.file.chooseFile({
data: {
accept: ["png", "jpg"], // 可选,Array。指定显示文件的类型,不指定时则显示所有的文件。
multiple: 1, // 可选,Number。最多允许选择几个文件。默认为1个,最大100个。
thumb : "1", // 可选,String。是否需要缩略图。"1": 需要;"0": 不需要。
maxSize: 1 // 可选,Number。单个文件允许的最大大小,单位为M。默认为300M,最大300M。
},
onfail: function(err) {
// 操作失败 返回状态信息
},
onsuccess: function(data) {
// 操作成功,如流开始处理
},
onComplete: function(data) {
// 用户选择完毕,返回文件信息
data.code // 必填,Number。错误码。200:成功。
data.error // 可选,String。错误信息。
data.files // 必选,Array。用户选择的文件列表。
// files 元素属性如下
data.files[0].fileID // 必填,String。文件在如流客户端本地的ID,用于file相关接口唯一标识文件。
data.files[0].fileName // 必填,String。文件名
data.files[0].fileSize // 必填,Number。文件大小,单位是byte
data.files[0].md5 // 必填,String。文件MD5
data.files[0].sha256 // 必填,String。文件SHA256
data.files[0].mime // 可选,String。文件类型,保留字段,暂时没有用
data.files[0].thumbBase64 // 可选,String。文件缩略图。
data.files[0].code // 必填,Number。文件错误码。code: 200(成功) | 404(文件不存在) | 400(未知错误)
data.files[0].error // 可选,String。文件错误信息。code为404和400的情况下需要返回这个key,200不返回
},
});
7.BdHiJs.appnative.file.download 文件下载
BdHiJs.appnative.file.download({
data: {
url:
referenceCount:
name:
size:
},
onfail: function(err) {
// 操作失败 返回状态信息
},
onsuccess: function(data) {
// 操作成功 如流开始处理
},
onReady: function(data) {
},
onProgress: function(data) {
},
onComplete: function(data) {
}
});
8.BdHiJs.appnative.file.upload 文件上传
BdHiJs.appnative.file.upload({
data: {
fileID: 'fafa', // 必填,String,要上传的本地文件唯一标识。
},
onfail: function(err) {
// 操作失败 返回状态信息
},
onsuccess: function(data) {
// 操作成功 如流开始处理
},
onReady: function(data) {
// 生成任务,准备上传
data.taskID: 'hsda' // 必填,字符串,本次任务的唯一标识
},
onProgress: function(data) {
// 上传进度回调
data.taskID: 'hsda', // 必填,字符串,本次任务的唯一标识
data.progress: 0.36, // 必填,浮点数,任务当前进度 0.00 ~ 1.00
data.speed: 200 // 必填,整数,当前上传速度,单位是 byte/s
},
onComplete: function(data) {
// 上传结束
data.fileID: 'fafa', // 必填,字符串,本地文件唯一标识。
data.taskID: 'hsda', // 必填,字符串,上传任务唯一标识。
data.fid: 'asdlf', // 必填,字符串,文件在服务端的唯一标识。应用方通过此凭证去服务端下载
data.fmd5: 'dfafa', // 必填,字符串,文件在服务端的唯一标识。应用方通过此凭证去服务端下载
data.code: 200, // 必填,整数,错误码。200 成功;202 暂停;203 取消;401 失败
data.error: '' // 必填,字符串,错误描述
}
});
9.BdHiJs.appnative.file.resumeTask 恢复任务
BdHiJs.appnative.file.resumeTask({
data: {
taskID:
},
onfail: function(err) {
// 操作失败 返回状态信息
},
onsuccess: function(data) {
// 操作成功 如流开始处理
},
onReady: function(data) {
},
onProgress: function(data) {
},
onComplete: function(data) {
}
});
10.BdHiJs.appnative.file.taskStatus 任务状态查询
BdHiJs.appnative.file.taskStatus({
data: {
taskID:
},
onfail: function(err) {
// 操作失败 返回状态信息
},
onsuccess: function(data) {
// 操作成功 如流开始处理
},
onComplete: function(data) {
}
});
11.BdHiJs.appnative.file.cancelTask 任务取消
BdHiJs.appnative.file.cancelTask({
data: {
taskID:
},
onfail: function(err) {
// 操作失败 返回状态信息
},
onsuccess: function(data) {
// 操作成功 如流开始处理
},
onComplete: function(data) {
}
});
12.BdHiJs.appnative.file.open 打开本地文件
BdHiJs.appnative.file.open({
data: {
fileID:
},
onfail: function(err) {
// 操作失败 返回状态信息
},
onsuccess: function(data) {
// 操作成功 如流开始处理
},
onComplete: function(data) {
}
});
13.BdHiJs.appnative.file.exist 判断本地文件是否存在
BdHiJs.appnative.file.exist({
data: {
fileID:
},
onfail: function(err) {
// 操作失败 返回状态信息
},
onsuccess: function(data) {
// 操作成功 如流开始处理
},
onComplete: function(data) {
}
});
14.BdHiJs.appnative.file.pendingListener 待处理文件监听
function onBdHiJsReady() {
// BdHiJs.sdk.version.get() >= 19 新增
BdHiJs.appnative.file.pendingListener = function (data) {
data.files // 文件列表
data.files[0].fileName // 文件名
data.files[0].fileSize // 文件大小,单位是byte
data.files[0].md5 // 文件md5
data.files[0].sha256 // 文件sha256
data.files[0].mime // 文件类型,保留字段,暂时没有用
data.files[0].fileID // 可选,String,文件本地唯一标识。应用方需要使用 file.upload 接口上传文件。fileID 和 sessionID 必有其一。
data.files[0].sessionID // 可选,String,文件(图片消息、文件消息)从如流服务器获取的临时授权标识。如果存在,应用方无需再使用 file.upload 上传文件,可以直接从如流服务器下载。fileID 和
sessionID 必有其一。
data.files[0].ownerID // 可选,String,文件所属联系人的唯一标识(imid)
data.files[0].ownerName // 可选,String,文件所属联系人的名字
}
}
二维码
1.BdHiJs.appnative.qrcode.getQrCode 打开二维码/条形码
// 默认支持二维码识别。
// BdHiJs.sdk.version.get() >= 19 ,支持了条形码识别。
BdHiJs.appnative.qrcode.getQrCode({
listener: function (qrCodeString) {
// 通过qrCodeString属性读取出来的字符串
}
});
2.BdHiJs.appnative.qrcode.getQrCodeCamera 打开二维码相机,不返回应用处理结果,由如流处理识别结果(不支持条形码)
// BdHiJs.sdk.version.get() >= 22
BdHiJs.appnative.qrcode.getQrCodeCamera();
AR
1.BdHiJs.appnative.ar.run 运行 AR
BdHiJs.appnative.ar.run({
data: {
"type": "0",
// 必填,字符串,AR类型。"0":未知,根据key在线拉取;"6":在手机端进行图像识别检索。
"key": "10001391", // type为"0"时必填,字符串,AR服务标识。
},
onfail: function(err) {
// 如果是硬件不支持,应用方不需要处理,客户端会做好用户提示
},
onsuccess: function() {
// 已显示 AR 界面
},
listener: function(data) {
// 用户点击交互元素之后,AR SDK 即刻停止工作,因此客户端在回调 listener 之后,会移除 AR 视图界面
data.url // 必选,字符串,用户点击结果。AR场景中,如果存在可交互元素,用户点击后,会返回点击结果。应用方可以使用新窗口打开该地址。
data.data // 作用与 data.url 相同。当 data.url 获取失败时,可以尝试使用 data.data 获取。(iOS端在 BdHiJs.sdk.version.get()<= 15 版本,使用的 data 命名)
}
});
语音识别
1.BdHiJs.appnative.asr.startRecognize 开始识别用户语音
BdHiJs.appnative.asr.startRecognize({
data: {
// 语音输入模型的相关参数。该服务为定制化服务,如果需要,请联系客服同学。
// 不填写则使用通用的语音识别模型
app_id: "10000", // 可选,认证相关,app_id,pid,app_key必须一起填写
pid: "10000", // 可选,认证相关,app_id,pid,app_key必须一起填写
app_key: "xxx.xxxxx.xx.xxxxxx", // 可选,认证相关,app_id,pid,app_key必须一起填写
url: "https://vse.baidu.com/v2" // 可选,认证相关,如果未上线,请填写测试服务地址
},
onfail: function(err) {
// 如果是硬件不支持,应用方不需要处理,客户端会做好用户提示
},
onsuccess: function() {
// 开始识别
},
listener: function(data) {
// 通知用户语音识别内容
data.status // 必填,整数,识别状态。1:识别中;2:识别成功;3:异常终止(见errCode);成功与否使用此字段,不能使用errCode。errCode为可选可能没有
// BdHiJs.sdk.version.get() >= 16 时新增 6:用户主动停止(调用了BdHiJs.appnative.asr.stopRecognize);7:用户主动取消(BdHiJs.appnative.asr.cancelRecognize)
data.result // 可选,字符串,识别结果。
data.pinyin // 可选,字符串,识别结果的拼音。拼音不带音调,空格分隔。
data.errCode // 可选,整数,异常终止的原因。1:没有麦克风权限;2:录音设备不可用;3:当前网络不可用;4:录音中断(来电等);5:服务异常(SDK繁忙等);6:没有安装语音插件(安卓专用)
}
});
// 调用 stopRecognize 后,如果已录制语音的识别尚未结束,会继续触发『识别成功』状态。
// 在没有调用 stopRecognize 和 cancelRecognize 时,如果用户停止说话,也会临时触发『识别成功』状态,然后继续识别用户语音。
// 如果调用方想实现自动识别用户短语音,可以在监听到 status = 2(识别成功)后,直接调用stopRecognize 停止识别。
2.BdHiJs.appnative.asr.stopRecognize 停止识别用户语音
BdHiJs.appnative.asr.stopRecognize({
onfail: function(err) {
},
onsuccess: function() {
// 停止识别
}
});
// 调用该接口后,语音会立即停止录制,但已录制语音的识别不一定立刻结束,可能需要一点时间。
// 请在 startRecognize 的 listener 中等待『用户主动停止』。
3.BdHiJs.appnative.asr.cancelRecognize 取消识别用户语音
BdHiJs.appnative.asr.cancelRecognize({
onfail: function(err) {
},
onsuccess: function() {
// 取消识别
}
});
// 调用该接口后,语音会立即停止录制,但已录制语音的识别不一定立刻结束,可能需要一点时间。
// 请在 startRecognize 的 listener 中等待『用户主动取消』。
语音合成
1.BdHiJs.appnative.tts.startSpeak 语音播报
BdHiJs.appnative.tts.startSpeak({
data: {
"text": "xxxx", // 不清楚字段含义 BdHiJs.sdk.version.get() >= 16,data支持js对象
"gender": "xxx",
},
listener: function(data) {
data.status
}
});
2.BdHiJs.appnative.tts.cancelSpeak 取消播报
BdHiJs.appnative.tts.cancelSpeak();