1.0.4 • Published 2 years ago

bs-js-to-native v1.0.4

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

bs-js-to-native

js 与 native 的通信

注意: 下面的说明仅供参考,会由于项目变更而发生变化,请随时保持沟通!

gitlab - 源码

线上交流文件

概述

JS-Native是网页和原生进行交互的规范。

通过使用JS-Native,网页开发者可借助原生APP高效地使用拍照、选图、位置等手机系统的能力,同时可以直接使用原生APP分享、扫一扫等原生APP特有的能力,为用户提供更优质的网页体验。

此文档面向网页开发者介绍JS-Native如何使用及相关注意事项。

基础接口

范式

// jsNativeCommonName:js+native 交互方法名
// params:数据传输给native
// callback:native回调函数
Bsoft.goToNative(jsNativeCommonName, params, callback);
});

注:JS-Native之间通过json字符串进行通信

1. 获取用户信息:getUserInfo

- 方法名:getUserInfo
- js传递给native的数据:{}
- native回调给js的数据:
{
  "userId": "xxxx", // 用户id
  "cardNo": "xxxx", // 证件号码
  "cardType": "xxxx", // 证件类型
  "bussType": "xxxx", // 平台类型(GOL:智慧健康通;HOL:互联网医院)
}

// 示例
Bsoft.goToNative("getUserInfo", params, (data: any) => {});

2. 获取客户端信息:getClientData

- 方法名:getClientData
- js传递给native的数据:{}
- native回调给js的数据:
{
  "name": "xxxx", // 设备名称:xiaowang 的 iPhone、xiaohei 的 Android
  "model": "xxxx", // 型号:iPhone、iPad、iTouch、Xiaomi、Vivo、OPPO、HUAWEI
  "systemName": "xxxx", // 系统名称:iOS、Android
  "systemVersion": "xxxx", // 系统版本号:11.0
  "appType": "xxx", // APP类型:1、居民端;2、医生端;3、管理端
  "appVersion": "xxx", // APP版本号:1.0
}

// 示例
Bsoft.goToNative("getClientData", params, (data: any) => {});

3. 获取token:getToken

- 方法名:getToken
- js传递给native的数据:{}
- native回调给js的数据:
{
  "token": "xxxx", // 用户token
}

// 示例
Bsoft.goToNative("getToken", params, (data: any) => {});

4. 上传图片:uploadImage

- 方法名:uploadImage
- js传递给native的数据:{}
- native回调给js的数据:
[
  {
    "fileId": "xxxx", // 文件id
    "fileUrl": "xxxx", // 文件url
  }
]

// 示例
Bsoft.goToNative("uploadImage", params, (data: any) => {});

5. 下载图片:downloadImage

- 方法名:downloadImage
- js传递给native的数据:
[
  {
    "fileId": "xxxx", // 文件id
    "fileUrl": "xxxx", // 文件url
  }
]
- native回调给js的数据:
{
  "success": "0/1", // 0: 失败;1:成功
}

// 示例
Bsoft.goToNative("downloadImage", params, (data: any) => {});

6. 打开地理位置:openLocation

- 方法名:openLocation
- js传递给native的数据:{}
- native回调给js的数据:
{
  "code": "200",
  "data": {
    "latitude": "xxxx", // 纬度
    "longitude": "xxxx", // 经度
  }
}

// 示例
Bsoft.goToNative("openLocation", params, (data: any) => {});

7. 获取地理位置:getLocation

- 方法名:getLocation
- js传递给native的数据:{}
- native回调给js的数据:
{
  "code": "200",
  "data": {
    "latitude": "xxxx", // 纬度
    "longitude": "xxxx", // 经度
  }
}

// 示例
Bsoft.goToNative("getLocation", params, (data: any) => {});

8. 调起客户端扫一扫:scanQRCode

- 方法名:scanQRCode
- js传递给native的数据:
{
  "type": "qrCode/barCode", // 扫码类型
}
- native回调给js的数据:
{
  "result": {}, // 回调结果    
}

// 示例
Bsoft.goToNative("scanQRCode", params, (data: any) => {});

9. 导航栏状态:navBarStatus

- 方法名:navBarStatus
- js传递给native的数据:
{
  "type": "show/hide", // 显示、隐藏
}
- native回调给js的数据:{}

// 示例
Bsoft.goToNative("navBarStatus", params, (data: any) => {});

10. 返回/关闭页面:popToPrevious

- 方法名:popToPrevious
- js传递给native的数据:{}
- native回调给js的数据:{}

// 示例
Bsoft.goToNative("popToPrevious", params, (data: any) => {});

11. 当前用户登出:logout

- 方法名:logout
- js传递给native的数据:{}
- native回调给js的数据:{}

// 示例
Bsoft.goToNative("logout", params, (data: any) => {});