0.0.7 • Published 4 years ago

test-jsbridge v0.0.7

Weekly downloads
1
License
ISC
Repository
-
Last release
4 years ago

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);
0.0.7

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago