test-jsbridge v0.0.7
Weex Bridge 和 JSBridge 公共业务方法
调用方式:
以下公共方法均按照:方法名(参数,回调函数)
的调用方式。
以getUserInfo为例:
import JSBridge from './JSBridge';
JSBridge.getUserInfo(
{token: '',
mobile: '',
adCode: '',
city: '',
lng:'',
lat:'',
locationText: '',
userId: ''
},
(resultInfo = {}) => {
const { code = 1, msg = "", data = {} } = resultInfo;
if (code === 0) {
// 处理 data
}
})
函数回调结果格式
以{ code = 1, msg = "", data = {} }
格式返回,其中code = 0
表示成功,code = 1
表示失败
1、pay 支付
参数:
{
// 订单号,
orderNo:"356111298165960704",
// 支付类型
payment: "1",
// 业务类型,
businessType: 1,
}
每个参数具体 类型和含义 详见 1.2 客户端-支付接口
payment 枚举:(支付渠道(0 免单支付,1.支付宝(app) 2.微信(app) 3.(企业支付) 4.余额支付 5.银联支付 6:流量渠道支付 )
businessType:枚举业务类型(1、乘客端行程订单 2、企业行程订单 3.xxx 4.小程序行程订单 5. 流量渠道订单-高德订单 40:充值订单 )
2、getUserInfo 获取用户信息
lng、lat 字段返回用户实时的位置信息。所有实时位置信息都从这个接口返回。
参数:
{
token: '',
// 手机号码
mobile: '',
// 城市编码
adCode: '',
// 城市
city: '',
// 经度
lng: '',
// 维度
lat:'',
// 地理位置文本:如:北京市海淀区学院8号南门
locationText: '',
// 用户ID
userId: '',
}
回调函数参数:
{
code: 0,
msg: "获取成功",
data: {
token: "xxdfafasfdasfa",
phone: "176876534567",
// 城市编码
adCode: '',
// 城市
city: '',
// 经度
lng: '',
// 维度
lat:'',
locationText: '北京市海淀区学院8号南门',
// 用户ID
userId: '',
}
}
3、goLogin 登录
参数:
{
}
回调函数参数:
{
code: 0,
msg: "登录成功",
data: {
}
}
4、getLocationInfo 获取实时位置信息
其中字段( lng: '', // 经度 lat:'', // 维度),返回的数据顺序为:如果存在上车位置(如:客户端)就返回用户的上车点;如过没有上车位置(如:司机端)就返回当前定位的实时位置;
参数:
{
}
回调函数参数:
{
code: 0,
msg: '成功',
data: {
// 经度
lng: '',
// 维度
lat:'',
// 地理位置文本
locationText: '北京',
// 城市编码
adCode: '',
// 城市
city: '',
}
}
5、share 微信分享
参数:
{
// 调用 API 列表
apiList: ["onMenuShareTimeline", "onMenuShareAppMessage"],
// 分享标题
title,
// 分享内容
content,
// 分享图片地址
imgUrl,
// 分享地址
linkUrl
}
apiList:调用 API 列表
- 1、onMenuShareTimeline:分享到微信朋友圈
- 2、onMenuShareAppMessage:分享到微信好友
- 3、onQQShareAppMessage: 分享到 QQ 好友
- 4、onQQShareQzone:分享到 QQ 空间
- 5、onWeiboShare:分享到微博
- 6、onAlipayShareTimeline:分享到支付宝生活圈
- 7、onAlipayShareAppMessage:分享到支付宝好友
- 8、onToutiaoShare:分享到今日头条
- 9、onDouyinShare:分享到抖音
回调函数参数:
{
code: 0,
msg: "操作成功",
data: {
}
}
6、shareMini 分享到小程序
参数:
{
// 调用 API 列表
apiList: ["onMenuShareAppMessage"],
// 小程序username
userName: "gh_1b0f21f46ebe",
// 分享小程序路径
path: "pages/index/index?app_id=gh_1b0f21f46ebe",
// 分享标题
title: "欧了出行招募司机啦!月入过万不是梦。",
// 小程序内容描述
desc: "欧了出行招募司机啦!月入过万不是梦。desc",
// 小程序分享节点高清大图,小于128K
hdImageData: "http://olayc.oss-cn-beijing.aliyuncs.com/166996C11BC9600D37B3E2DEE42FCD72.png?Expires=1882349218&OSSAccessKeyId=LTAIBvzNg84oa7bM&Signature=aKKZhoP3D32KKB5MF%2Bu4sD3wqvw%3D",
// 兼容微信低版本网页地址
webpageUrl: "https://www.baidu.com",
// 环境
env: 'dev'
}
apiList 调用 API 列表:
- 1、onMenuShareAppMessage : 分享到小程序 ( 注意:apiList 中存在小程序,不可配置其他分享渠道)
env 环境,取值范围:
- 1、prod、正式环境
- 2、preview、体验环境
- 3、dev、开发环境
回调函数参数:
{
code: 0,
msg: "操作成功",
data: {
}
}
7、openMiniProgram 打开小程序
参数:
{
// 路径?参数,参数需要 encodeURIComponent 编码
path:'pages/index/index?app_id=gh_1b0f21f46ebe',
// 小程序ID
programId:'gh_1b0f21f46ebe',
// 环境
env:dev
}
env:环境,取值范围:
- 1、prod、正式环境
- 2、preview、体验环境
- 3、dev、开发环境
回调函数参数:
{
code: 0,
msg: '成功',
data: {
}
}
8、doPhotos 拍照
参数:
{
// 调用 API 列表
apiList: ["onPhotos", "onCamera"],
type: 1,
// 是否支持多选
isMultiple: true,
// 最少几张
minSize: 1,
// 最多几张
maxSize: 5,
// 压缩比例
compressionRatios: 0.3,
// 裁剪比例,等比例压缩
trimRatios: 0.5,
}
apiList:调用 API 列表
- 1、onPhotos:打开相册
- 2、onCamera:打开相机
type 取值范围:
- 1、0:不压缩
- 2、1:压缩
- 3、2:剪裁
- 4、3:压缩并剪裁
回调函数参数:
{
code: 0,
msg: "操作成功",
data: {
// img Url 集合
imgUrlList: [
'http://s06.lmbang.com/M00/C2/2E/ecloA1v1tcqABl1XAADvcJNYLWg050.jpg'
]
}
}
9、setNavigation 获取导航
参数:
{
// 标题
title: "标题",
// 类型,暂时不需要用
type: 1,
// 右侧导航背景图
imgUrl: ""
}
type 取值范围:
- 1、1:设置右侧导航
- 2、2:使用默认右侧导航
回调函数参数:
{
code: 0,
msg: "操作成功",
data: {
}
}
10、setTitle 设置标题
参数:
{
// 标题
title: "标题",
}
回调函数参数:
{
code: 0,
msg: "操作成功",
data: {
}
}
11、setNvcAnalyzeParams 设置人机验证参数
参数:
{
// 滑块组件是否存 true 存在,false不存在
domIsExist:true,
// 会话ID
csessionid:'',
code:0,
value:'',
// 签名串
sig:'',
// 请求标识
token:'',
//场景
scene: ''
}
12、openUrl 打开 URL
参数:
{
// 类型
type: 0,
// url 连接
url: ""
}
type 取值范围:
- 1、0:不打开新 WebView、APP 内打开
- 2、1:打开新 WebView
回调函数参数:
{
code: 0,
msg: "操作成功",
data: {
}
}
13、getEnvInfo 获取环境信息
参数:
{
}
回调函数参数:
{
code: 0,
msg: '获取成功',
data: {
// 环境名称
env: 'dev'
}
}
env 环境名称取值范围:
- 1、dev:开发环境
- 2、test:测试环境
- 3、uat:UAT 环境
- 4、prod:正式环境
14、goBackApp 返回到 APP
进入页面执行此方法后,用户点击左上角的返回,直接返回到 APP。
参数:
{
}
回调函数参数:
{
code: 0,
msg: '获取成功',
data: {
}
}
15、goBackAppIndex 返回到 APP 首页
执行此方法直接返回到 APP 首页;
参数:
{
}
回调函数参数:
{
code: 0,
msg: '获取成功',
data: {
}
}
16、startRecord 开始录音
点击此方法开始录音;
参数:
{
}
回调函数参数:
{
code: 0,
msg: '成功',
data: {
}
}
17、stopRecord 停止录音
点击此方法停止录音,并以 Base64 方式返回录音结果。
参数:
{
net4: 126543234564(时间戳)
}
回调函数参数:
{ code: 0, msg: '成功', data: { // 录音结果 resultList: "data:audio/mp3;base64,SUQzAwAAAAEvLFRBTEIAAAAJAAAB//7ZZk", "data:audio/mp3;base64,SUQzAwAAAAEvLFRBTEIAAAAJAAAB//7ZZk" } }
18、dialog 对话框
参数:
{
// 标题 , 可以没有
title : '标题',
// 内容文本,可能出现换行
content: '内容文本,可能出现换行',
// 取消,可以没有
cancelBtnText: '取消',
// 确定
okBtnText: '确定'
}
回调函数参数:
{
// 0 点击确认按钮,1 点击取消按钮
code: 0,
msg: '成功',
data: {
}
}
Weex Bridge 和 JSBridge 公共的通用调用方法
callJSBridge 调用 JSBridge
参数:
- 1、默认 模块名称:
TBDefaultModule
;H5 允许以字符串的形式传入挂载对象字符串。如:'webkit.messageHandlers'
- 2、方法名称
- 3、参数
- 4、回调函数
Weex 调用方式
JSBridge.callJSBridge(
"TBDefaultModule",
"getUserInfo",
{ token: "" },
async resultInfo => {
const { code = 1, msg = "", data = {} } = resultInfo;
if (code === 0) {
// 处理 data
}
}
);
H5 调用方式
JSBridge.callJSBridge(
"webkit.messageHandlers",
"getUserInfo",
{ token: "" },
async resultInfo => {
const { code = 1, msg = "", data = {} } = resultInfo;
if (code === 0) {
// 处理 data
}
}
);
Weex Bridge 和 JSBridge 公共工具方法
1、isIOS
是否是 IOS;
JSBridge.isIOS();
2、isAndroid
是否是 Android;
JSBridge.isAndroid();
3、isNewBridge
是否是新 Bridge;
JSBridge.isNewBridge();
4、getQueryParams
获取 Query 参数;
JSBridge.getQueryParams();
5、getAppVersion
获取 APP 版本号。例如:2.11.0
JSBridge.getAppVersion();
6、getAppName
获取 AppName
JSBridge.getAppName();
返回结果如下:
- 1、enterprise 企业版本乘客端
- 2、driver 司机端
- 3、passengers 乘客端
- 4、OLACharts 数据大脑
7、getBundleIdentifier
获取 bundle identifier。例如:xxx.xxxxxxx.xx
JSBridge.getBundleIdentifier();
8、getAPPInfo
获取 APP 信息
JSBridge.getAPPInfo();
返回结果:
{
// 是否是IOS
isIOS,
// 是否是Android
isAndroid,
// 是否是新Bridge
isNewBridge,
// 版本
version,
// bundle identifier
bundleIdentifier,
// APP 名称
appName
}
9、versionComparison
版本判断,版本 1 大于等于 版本 2 返回 true,否则返回 false。
如: version1 版本 1 如:'2.7.0' version2 版本 2 如:'2.6.0'
JSBridge.versionComparison(version1, version2);