设备通用API
设备通用API 都是以device. 开头描述的。
其中:
- device.base.xx 代表app或设备的相关信息
- device.util.xx 代表一些通用的功能
- device.notification.xx 代表通知类的相关功能
- device.navigation.xx 代表设置navigationBar的相关功能
接口列表
接口名称 | 需要授权 | 接口描述 | 同步/异步 | 企业端版本 | 政府端版本 |
---|---|---|---|---|---|
device.base.version | 不需要 | 获取app版本 | 同步 | >= 3.0.3 | >= 3.0.3 |
device.base.devicetype | 不需要 | 获取设备类型ios/android | 同步 | >= 3.0.8 | >= 3.1.5 |
device.base.container.version | 不需要 | 获取容器版本 | 同步 | >= 3.0.3 | >= 3.0.3 |
device.base.user | 不需要 | 获取当前登录用户信息 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.base.encode | 不需要 | 获取userid请求的code | 异步 | >= 3.0.6 | >= 3.1.2 |
device.base.baseid | 不需要 | 获取当前用户baseId | 异步 | >= 3.0.6 | >= 3.1.2 |
device.base.getSystemInfo | 不需要 | 获取系统信息 | 异步 | >= 4.1.0 | >= 3.3.2 |
device.base.passValue | 不需要 | 原生传值给h5 | 异步 | >3.1.1 | >3.0.9 |
device.notification.alert | 不需要 | alert弹窗 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.notification.confirm | 不需要 | confirm弹窗 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.notification.actionSheet | 不需要 | actionSheet弹窗 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.notification.showPreloader | 不需要 | 显示加载中 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.notification.hidePreloader | 不需要 | 隐藏加载中 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.util.callPhone | 不需要 | 调用系统打电话功能 | 异步 | >3.1.4 | >3.2.2 |
device.util.sendMessage | 不需要 | 调用系统发短信功能 | 异步 | >3.1.4 | >3.2.2 |
device.util.openUrl | 不需要 | 打开一个新的页面 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.util.closeWindow | 不需要 | 关闭当前页面 | 同步 | >= 3.0.3 | >= 3.0.3 |
device.util.closeAndOpenUrl | 不需要 | 关闭当前页面并打开一个新的页面 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.util.datepicker | 不需要 | 打开日期选择器 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.util.timepicker | 不需要 | 打开时间选择器 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.util.datetimepicker | 不需要 | 打开时间日期选择器 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.navigation.bindBackBtn | 不需要 | 绑定回退键 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.navigation.unbindBackBtn | 不需要 | 解绑回退键 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.navigation.setMenu | 不需要 | 设置右边功能按钮 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.navigation.removeMenu | 不需要 | 移除右边功能按钮 | 异步 | >= 3.0.6 | >= 3.1.2 |
device.navigation.setTitle | 不需要 | 设置标题 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.navigation.setBgColor | 不需要 | 设置背景颜色 | 异步 | >= 3.0.3 | >= 3.0.3 |
device.navigation.setBackColor | 不需要 | 设置回退按钮颜色,默认蓝色(blue),可选白色(write) | 异步 | > 3.0.91 | > 3.0.7 |
device.navigation.setRightWZ | 不需要 | 设置导航栏右边按钮文字和颜色,字体大小,功能 | 异步 | >3.1.0 | >3.0.8 |
device.navigation.setCancelMB | 不需要 | 是否取消iOS原生导航栏的蒙版效果(Android不考虑) | 异步 | >3.1.0 | >3.0.8 |
device.navigation.jumpVC | 不需要 | h5跳转 原生界面/h5 | 异步 | >3.1.1 | >3.0.9 |
device.navigation.closeButton | 不需要 | 导航栏左边的"X"按钮,用于关闭当前容器 | 异步 | >4.0.1 | >3.3.0 |
device.navigation.hiddenHX | 不需要 | 是否隐藏导航栏底部默认黑线 | 异步 | >3.1.4 | >3.2.2 |
device.navigation.hiddenNAVI | 不需要 | 隐藏当前界面原生导航栏 | 异步 | >3.1.4 | >3.2.2 |
device.navigation.popVC | 不需要 | 返回到上一个原生控制器界面 | 同步 | >3.1.4 | >3.2.2 |
接口详情
device.base.version
获取当前应用版本信息
调用方法:
zqtbridge.call("device.base.version")
返回结果:
{"code":"0","msg":"处理成功","version":"x.x.x","name":"政企通"}
version 代表当前应用的版本号, name 代表当前应用的名称
device.base.devicetype
获取当前设备类型
调用方法:
zqtbridge.call("device.base.devicetype")
返回结果:
{"code":"0","msg":"处理成功","type":"android"}
type 代表当前设备型号, ios/android
device.base.container.version
获取当前容器相关版本信息
调用方法:
zqtbridge.call("device.base.container.version")
返回结果:
{"code":"0","msg":"处理成功","version":"Vx.x.x","type":"H5","level":"HOUSE","env":"DEV"}
- version 代表当前容器版本号。
- type 代表当前容器类型。
- level 代表当前容器级别。
- env 代表当前容器的运行环境。
device.base.user
获取当前登录用户相关信息
调用方法:
zqtbridge.call("device.base.user", function (v) { alert(v) });
返回结果:
{"code":"0","msg":"处理成功","user":{
"userId":"c48696bb-cb5a-4e5f-80ec-b0477c58269e"
"baseId":"ad0f56d2-4c5a-4b02-9127-6db8cc099820"}
}
- user 代表当前用户对象。
- userId 代表基本信息id
- baseId 企业id
device.base.encode
获取当前登录用户相关信息
调用方法:
zqtbridge.call("device.base.encode", {"clientId":"zqtong_app_client"}, function (v) { alert(v) });
参数说明:
- clientId 对应的clientId, 如:zqtong_app_client
返回结果:
{
"code":"0","msg":"处理成功","encode":"PGkFY1s4wKfumFQsRAexAok27LivUFsy%23HOZIqjsh9DjV3D69qGgSoNtHx6Hz%23lsczucgIg7Grms%0ASG9gSeETVCp8ONND%23x%2FiGe4S2d8tbv0%3D"
}
- encode 基于encode去请求userId
device.base.baseId
获取当前登录用户相关信息
调用方法:
zqtbridge.call("device.base.baseId", function (v) { alert(v) });
返回结果:
{
"code":"0","msg":"处理成功","baseId":"ad0f56d2-4c5a-4b02-9127-6db8cc099820"
}
device.base.getSystemInfo
解释: 获取系统信息
返回参数说明:
参数 | 说明 | 备注 |
---|---|---|
brand | 手机品牌 | |
model | 手机型号 | |
screenWidth | 屏幕宽度 | |
screenHeight | 屏幕高度 | |
statusBarHeight | 状态栏的高度 | |
navigationBarHeight | 导航栏的高度 | |
platform | 客户端平台,如:iOS/Android。 |
调用方法
zqtbridge.call("device.base.getSystemInfo", function (v) { alert(v) });
返回结果:
{
"code": "0",
"msg": "处理成功",
"params": {
"brand": "Apple",
"model": "iPhone X",
"screenWidth": 375,
"screenHeight": 812,
"navigationBarHeight": "88",
"statusBarHeight": 44,
"platform": "iOS"
}
}
device.notification.alert
调用方法:
zqtbridge.call("device.notification.alert", {msg:'msg', title:'title'}, function (v) { });
参数说明:
- title 代表alert顶部标题
- msg 代表alert显示内容
返回结果:
{"code":"0","msg":"处理成功"}
device.notification.confirm
调用方法:
zqtbridge.call("device.notification.confirm", { title:'title', msg:'msg'}, function (v) { alert(v) });
参数说明:
- title 代表alert顶部标题
- msg 代表alert显示内容
返回结果:
{"code":"0","msg":"处理成功","result":"1"}
- result 1.代表点击了【确认】 2.代表点击了【取消】
device.notification.actionSheet
调用方法:
zqtbridge.call("device.notification.actionSheet", { title:'title', items:["actionSheet0","actionSheet1","actionSheet2"]}, function (v) { alert(v) });
参数说明:
- title 代表alert顶部标题
- items 代表actionSheet中的item名字
返回结果:
{"code":"0","msg":"处理成功","result":"1"}
- result 代表点击item对应的index,与items元素的顺序一致
device.notification.showPreloader
调用方法:
zqtbridge.call("device.notification.showPreloader", function (v) { });
返回结果:
{"code":"0","msg":"处理成功"}
device.notification.hidePreloader
调用方法:
zqtbridge.call("device.notification.hidePreloader", function (v) { });
返回结果:
{"code":"0","msg":"处理成功"}
device.util.openUrl
调用方法:
zqtbridge.call("device.util.openUrl", {"url":"http://www.baidu.com","title":"新的页面"}, function (v) { alert(v) });
参数说明:
- title 代表新页面标题
- url 代表页面地址
返回结果:
{"code":"0","msg":"处理成功"}
device.util.closeWindow
调用方法:
zqtbridge.call("device.util.closeWindow");
返回结果:
{"code":"0","msg":"处理成功"}
device.util.closeAndOpenUrl
调用方法:
zqtbridge.call("device.util.closeAndOpenUrl", {"url":"http://www.baidu.com","title":"新的页面"}, function (v) { alert(v) });
参数说明:
- title 代表新页面标题
- url 代表页面地址
返回结果:
{"code":"0","msg":"处理成功"}
device.util.datepicker
调用方法:
zqtbridge.call("device.util.datepicker", function (v) { alert(v) });
返回结果:
{"code":"0","msg":"处理成功","datetime":"2001/01/01"}
device.util.timepicker
调用方法:
zqtbridge.call("device.util.timepicker", function (v) { alert(v) });
返回结果:
{"code":"0","msg":"处理成功","datetime":"12:00:00"}
device.util.datetimepicker
调用方法:
zqtbridge.call("device.util.datetimepicker", function (v) { alert(v) });
返回结果:
{"code":"0","msg":"处理成功","datetime":"2001/01/01 12:00:00"}
device.navigation.bindBackBtn
调用方法:
zqtbridge.call("device.navigation.bindBackBtn", {"callback":"bindBackBtn"}, function (v) { alert(v) });
//在js中的callback方法
zqtbridge.register('bindBackBtn', function () {
alert("绑定成功");
})
参数说明:
- callback 自定义的js方法名
返回结果:
{"code":"0","msg":"处理成功"}
device.navigation.unbindBackBtn
调用方法:
zqtbridge.call("device.navigation.unbindBackBtn", function (v) { alert(v) });
返回结果:
{"code":"0","msg":"处理成功"}
device.navigation.setMenu
调用方法:
zqtbridge.call("device.navigation.setMenu", {"ISPullMenu":"no","ISCancelSonIcon":"no","parentIcon":"https://upload-images.jianshu.io/upload_images/1903176-e265ebe2cca7821a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240","menus":[
{"icon":"https://58.215.198.210:9997/test/icon.png","androidIcon":"https://58.215.198.210:9997/test/icon2.png","title":"测试1","callback":"callbackOne"}, {"icon":"https://58.215.198.210:9997/test/icon.png","androidIcon":"https://58.215.198.210:9997/test/icon2.png","title":"测试2","callback":"callbackTwo"},
{"icon":"https://58.215.198.210:9997/test/icon.png","androidIcon":"https://58.215.198.210:9997/test/icon2.png","title":"测试3","callback":"callbackThree"}
]}, function (v) { alert(v) });
//在js中的callback方法
zqtbridge.register('callbackOne', function () {
alert("callbackOne绑定成功");
})
zqtbridge.register('callbackTwo', function () {
alert("callbackTwo绑定成功");
})
zqtbridge.register('callbackThree', function () {
alert("callbackThree绑定成功");
})
参数说明:
2019-6-10更新,新增参数ISOneMenu,ISCancelSonIcon,parentIcon
- ISOneMenu: 传”no“,表示有多个子菜单的情况;如果只有一个子菜单,传"yes"。注意:这个参数如果没有传,则该jsbridge的逻辑还是按照 2019-6-10之前的逻辑,也就是说多个子菜单无法设置没有图片的情况;且有多个子菜单存在的时候,父菜单的图片是固定的三个点,父菜单没法动态设置其他图片。也就是说参数ISCancelSonIcon、parentIcon没有作用
- ISCancelSonIcon:参数的意思表示是否取消子菜单中的图片,传"no"表示默认,也就是不取消,默认的时候设置子菜单是需要传图片icon的;传"yes"表示取消,那么最终子菜单呈现出来的时候只有文字。
- parentIcon:该参数表示父菜单的图片,如果有子菜单的情况下,该参数没传,默认父菜单是三个点。
- menus:该参数必传,右上角弹出菜单列表(注:当列表中只有一个元素时,不会显示弹出菜单,直接设置右上角按钮)
- icon ios菜单图标 一般为30x30。注意:之前一直有人反映展示的图标很大,如果图标很大,你需要将图片的像素设置小于等于30x30,设置越小展示的就会越小,比如25x25的图片就会比30x30的图片展示的时候小
- androidIcon android菜单图标 一般为90x90
- title 菜单标题
- callback 菜单触发事件js方法名
2020-5-11更新,新增参数ISPullMenu
- ISPullMenu: 传”no“,或者不传则按老版本处理,单个子菜单直接跳转,多个子菜单下拉弹窗选择,yes则子菜单数据只有一个时,出现下拉菜单
返回结果:
{"code":"0","msg":"处理成功"}
device.navigation.removeMenu
调用方法:
zqtbridge.call("device.navigation.removeMenu", function (v) { alert(v) });
返回结果:
{"code":"0","msg":"处理成功"}
device.navigation.setTitle
调用方法:
zqtbridge.call("device.navigation.setTitle", {"title":"测试标题","color":"#FFFFFF","fontSize":"20"}, function (v) { alert(v) });
参数说明:
- title 页面标题
- color 字体颜色
- fontSize 字号大小
返回结果:
{"code":"0","msg":"处理成功"}
device.navigation.setBgColor
调用方法:
zqtbridge.call("device.navigation.setBgColor",{"color":"#1E90FF"}, function (v) { alert(v) });
参数说明:
- color 页面导航栏背景颜色,必须为十六进制颜色编码
返回结果:
{"code":"0","msg":"处理成功"}
device.navigation.setBackColor
调用方法:
zqtbridge.call("device.navigation.setBackColor",{"color":"#FF69B4"}, function (v) { alert(v) });
参数说明:
- 默认回退按钮为蓝色,如果需要改变返回按钮的颜色,请传color,格式为#加上16进制,如“#FF69B4”
返回结果
{"code":"0","msg":"处理成功"}
device.navigation.setRightWZ
调用方法
zqtbridge.call("device.navigation.setRightWZ",{"color":"#1E90FF","title":"右上标题","callback":"callbackFour","fontSize":"16","redNum":"2"}, function (v) { alert(v) });
在js中callback绑定的方法
zqtbridge.register('callbackFour', function () {
alert("callbackFour绑定成功");
})
参数说明:
- title 右上角标题文字
- color 字体颜色,不传默认黑色
- fontSize 字号大小,传整数,不传默认为16
- callback 自定义的js方法名
- redNum 红色消息提示数量,没有的话传"0", 其他传具体"数字",大于99会自动转换成99+ (传字符串的数字)
device.navigation.setCancelMB
调用方法
zqtbridge.call("device.navigation.setCancelMB",{"cancelMB":"1"}, function (v) { alert(v) });
参数说明
- cancelMB: 是否取消iOS系统导航栏的蒙版效果,传“1”则为取消蒙版效果,传“0”则添加系统蒙版效果,因为系统默认是有蒙版效果的,如果主动取消掉了的话,后面js进入二级或者三级界面需要的话,得手动再调用一下传个“0”,就能恢复系统蒙版效果。
- 此属性仅限iOS,Android没有。
device.navigation.jumpVC
调用方法
zqtbridge.call("device.navigation.jumpVC",{"ISJumpTab":"yes","JumpTabNum":"0","JumpIOSName":"HelpViewController","JumpAndroidName":"SettingHelperActivity","ParamsDic":"{\"key\":\"value\"}",}, function (v) { alert(v) });
参数说明
1.跳转原生:
- ISJumpTab,JumpTabNum:ISJumpTab用来判断是否跳转app的tab页面,传字符串的yes,则跳tab页面,那么app处理的时候只会取JumpTabNum的值,比如JumpTabNum传的字符串的0,那么就会跳首页,JumpTabNum传的字符串的1,就会跳消息界面。
- ISJumpTab传的不是yes,比如传了no,那么就要填写具体页面的名字。
- JumpIOSName: iOSapp中类的名称,建议和iOS开发人员联系获取
- JumpAndroidName :Android中类的名称,建议和Android开发人员联系获取
- ParamsDic:相关参数,有可能需要传的参数,用key和value对应,比如key为name,value为张三,如果不需要传参数的话ParamsDic可以传空,需要传的话得和原生app人员对接一下。
2.跳转h5
说明:一般h5跳转h5和原生应该都没什么关系,但是有个别情况(这里以iOS为例),比如原生最初始的页面就是h5加载的,然后需要点击h5上的按钮跳转h5,这个时候如果不做处理的话,最外层的tabbar一开始有,或者导航栏一开始是影藏的话,那么跳转后还是那样的,就不满足需求了。那么这个时候需要用到这个方法。
- ISJumpTab:传no
- JumpTabNum:传0
- JumpIOSName:传OpenJSContainer
- JumpAndroidName:传ContainerH5V1Activity
- ParamsDic:title(导航栏标题),url(链接地址),这两个参数必须传
3.跳转h5微应用(zip包形式)
ISJumpTab:传no
JumpTabNum:传0
JumpIOSName:传OpenJSContainer
JumpAndroidName:传ContainerH5V1Activity
ParamsDic:title(导航栏标题),url(链接地址),app(h5微应用的名字,不传的话默认是ZQT_Home)
打开到外部链接
{
url = "http://www.baidu.com" title = "测试" app = "ZQT_微应用名"
}
打开微应用首页
{
url = "ZQT_微应用名" title = "测试"
}
打开指定微应用页面
{
url = "#/todo" title = "测试" app = "ZQT_微应用名"
}
4.Router跳转方案
ISJumpTab:传no
JumpTabNum:传0
JumpIOSName:传OpenRouter
JumpAndroidName:传OpenRouter
ParamsDic:url(链接地址),此url为完整的Router方案地址,Router方案地址规则定义如下备注。
备注:Router方案定义
例:zqtrouter://router:80/organFramework?comId=woxxxx&baseId=junjie&isMasterAdmin=false
解释:zqtrouter作为scheme,用来区分是否执行这套规则的;host和端口号暂时用不到,请固定取值为router:80;path为指定的类,如果是跳tab,path传TabViewController,否则传对应的classname;后面是指定的参数
目前支持的Router原生界面和对应的参数
- 组织架构:organFramework(类名),参数:{"baseId":"企业的baseid","comId":"公司的id,string类型",“isMasterAdmin”:"是否是管理员,boolean类型"}};
- 关联企业:assoCompany(类名),参数:{"baseId":"企业的baseid,string类型","comName":“公司的名称,string类型”}
- 组织管理:organManager(类名),参数:{"baseId":"企业的baseid,string类型","comName":"公司的名称,string类型",“creditCode”:"信用代码,string类型",“legalName”:“法人名称,string类型”}
- 工作台:TabViewController(类名),参数:{ ISJumpTab传递"1",JumpTabNum(0消息,1工作台,2企业管理,3我的) }
device.navigation.closeButton
解释:关闭当前容器的按钮,默认图片是 "X"
入参说明:
参数 | 说明 | 备注 |
---|---|---|
hidden | boolean 类型 | 为 true时隐藏,默认为false |
icon | 自定义icon | 图片链接;当 hidden = true时 icon值为空 |
defaultIconColor | 更改默认icon颜色 | value格式为"#xxxxxx"; |
注意: icon 和 defaultIconColor 同时传入的话,icon 生效
调用方法:
// 不隐藏关闭按钮,使用自定义 icon
zqtbridge.call("device.navigation.closeButton",{"hidden": false, "icon": "https://58.215.198.210:8443/EFS_investsmart/card/08029001.jpg"}, function (v) { alert(v) });
// 不隐藏关闭按钮,更改默认icon 颜色
zqtbridge.call("device.navigation.closeButton",{"hidden": false, "defaultIconColor": "#ffffff"}, function (v) { alert(v) });
// 隐藏关闭按钮
zqtbridge.call("device.navigation.closeButton",{"hidden": true}, function (v) { alert(v) });
返回结果:
{"code":"0","msg":"处理成功"}
device.base.passValue
调用方法
zqtbridge.call("device.base.passValue",{"type":"homeJump"}, function (v) { alert(v) });
参数说明:
- type: 表示是哪一个功能的传递参数,这个需要和app端商量,app端根据不同类型消息在APP内做不同处理后,再将参数传递给h5页面
返回结果:
{"code":"0","msg":"处理成功","params":{"name":"张三","age":"23"}}
app端将参数传递给h5的时候用params作为key。
device.navigation.hiddenHX
调用方法
zqtbridge.call("device.navigation.hiddenHX",{"hidden":"1"}, function (v) { alert(v) });
参数说明
- hidden: 不传或者传字符串0表示显示黑线,传字符串1表示隐藏导航栏黑线
返回结果
{"code":"0","msg":"处理成功"}
device.util.callPhone
调用方法
zqtbridge.call("device.util.callPhone", {"phone":"18712345678"}, function (v) { alert(v) });
参数说明
- phone: 电话号码
device.util.sendMessage
调用方法
zqtbridge.call("device.util.sendMessage", {"phone":"18712345678"}, function (v) { alert(v) });
参数说明
- phone: 电话号码
device.navigation.hiddenNAVI
调用方法
zqtbridge.call("device.navigation.hiddenNAVI",{"hidden":"1"}, function (v) { alert(v) });
参数说明
- hidden: 不传或者传字符串0表示显示导航栏 (其实导航栏默认就是显示的),传字符串1表示隐藏导航栏
device.navigation.popVC
调用方法
zqtbridge.call("device.navigation.popVC",{"popVC":"1"}, function (v) { alert(v) });
参数说明:
- popVC:传字符串1,表示返回上一个原生控制器界面,否则没响应。