1.1.18 • Published 7 months ago

@hema-npm/js-bridge v1.1.18

Weekly downloads
-
License
ISC
Repository
-
Last release
7 months ago

@hema-npm/js-bridge

河马混合开发原生 h5 交互 js-bridge 库

use

npm install @hema-npm/js-bridge

在 vue 项目中 main.js 文件中直接引入 window 下注入 HmJsBridge 方法

import '@hema-npm/js-bridge';

用法

方法名就是 src 文件夹下 callHandler 里的方法

testEvent 方法名 window.HmJsBridge.callHandler(方法名,参数,回调函数接收结果,是否需要进度回溯)

window.HmJsBridge.callHandler(
  'testEvent',
  {
    message: '这是js调用testEvent方法传递的参数',
    params: {
      id: 1,
    },
  },
  res => {
    console.log('这是testEvent方法的回调', res);
  },
  true
);

如果不需要支持进度回溯,方法已转换成 promise 可通过 promise 方式调用 window.HmJsBridge.callHandler(方法名,参数)

const getAppInfo = async () => {
  const result = await window.HmJsBridge.callHandler('getAppInfo');
};

返回结果

{
  code: 0|1, // 0调用成功 1调用中
  data: '返回数据',
  msg: 'msg信息'
}

详细使用方式

get-app-info 方法

获取 app 设备信息以及 token 等

用法

const getAppInfo = async () => {
  const result = await window.HmJsBridge.callHandler('getAppInfo');
};

返回结果

get-app-status-height 方法

获取 app 通知栏高度

用法

const getAppStatusHeight = async () => {
  const result = await window.HmJsBridge.callHandler('getAppStatusHeight');
};

返回结果

{
  code: 0,
  data: 40, // 高度值
  msg: ''
}

go-router 方法

h5 跳转原生页面 调用立即生效

用法

window.HmJsBridge.callHandler('goRouter', params);

传参

interface params {
  router: string; // 跳转路径
  params?: {[key: string]: any}; // 传参
}

close-webview 方法

h5 关闭当前 webview

用法

window.HmJsBridge.callHandler('closeWebview');

download-file 方法

下载文件到本地

用法

window.HmJsBridge.callHandler(
  'downloadFile',
  params,
  res => {
    console.log('这是downloadFile方法的回调', res);
  },
  true
);

传参

interface params {
  url: string; // 需要保存文件路径
  filesType: 'img' | 'pdf'; // 文件类型  图片文件、pdf文件
}

返回结果

{
  code: 1,// 0调用完成 1调用中 3调用失败
  data: {
    progress: 10, // 下载进度0-100
    status: 0|1|3 // 0 下载完成 1 下载中 3 下载失败 失败可在msg返回失败提示原因
  },
  msg: ''
}

upload 方法

上传文件

用法 upload 方法限制文件大小范围 image 类型 2.5M 以内 application/pdf 10M 以内

window.HmJsBridge.callHandler(
  'upload',
  params,
  res => {
    console.log('这是upload方法的回调', res);
  },
  true
);

传参

interface params {
  type: 0|1|2|3  // 0 直接拍照 1 弹窗 (拍照 相册 文件上传) 2 弹窗 (拍照 相册) 3 直接文件上传
  privatization: boolean // 是否是私有化上传
  filesNumber: number // 文件个数
  MIMETypes?: Array<'image/jpeg'|'image/png'|'application/pdf'> // 文件MIME类型 数组 可以多种类型 ['image/jpeg','image/png','application/pdf'] 传空代表不限制文件MIME类型
}

返回结果

{
  code: 1,// 0调用完成 1调用中 3调用失败
  data: {
    progress: 10, // 上传进度0-100
    url: [], // 上传文件完成的网络链接
    status: 0|1|2|3 // 0 上传完成 1 上传中 2 取消上传 3 上传失败 失败可在msg返回失败提示原因
  },
  msg: ''
}

pay方法

=======

微信/支付宝支付

```js
window.HmJsBridge.callHandler('pay', params, (res) => {
  console.log('这是pay方法的回调', res)
}, true)

传参

interface params {
  payMethod: "ALIPAY" | "WECHAT"; // ALIPAY 支付宝支付 WECHAT 微信支付
  transactionNo: string; // 订单编号
}

返回结果

{
  code: 1,// 0支付失败 1支付成功
  msg: ''
}

open-modal 方法

h5 页面掉原生弹框 调用立即生效

用法

window.HmJsBridge.callHandler('openModal', params);

传参

interface params {
  modalName: string; // 弹框类型
  type?: string; // 可选动态传参
}

联系客服 方法

用法

window.HmJsBridge.callHandler('jumpToCustomer', params);

传参

interface params {
  type: string; // 客服类型
}

安卓前往应用市场下载app 方法

用法

window.HmJsBridge.callHandler('downloadApp', params);

传参

interface params {
  id: string; // app应用对应包名
}
1.1.18

7 months ago

1.1.17

7 months ago

1.1.15

7 months ago

1.1.14

8 months ago

1.1.13

8 months ago

1.1.12-dev4

8 months ago

1.1.12-dev3

8 months ago

1.1.12-dev2

8 months ago

1.1.12-dev1

8 months ago

1.1.12

8 months ago

1.1.10

9 months ago

1.1.9

9 months ago

1.1.8

10 months ago

1.1.7

10 months ago

1.1.6

10 months ago

1.1.5

10 months ago

1.1.4

10 months ago

1.1.3

10 months ago

1.1.2

10 months ago

1.1.1

10 months ago

1.1.0

10 months ago

1.0.9

10 months ago

1.0.8

10 months ago

1.0.7

10 months ago

1.0.6

10 months ago

1.0.4

10 months ago

1.0.3

10 months ago

1.0.2

10 months ago

1.0.1

10 months ago

1.0.0

10 months ago