# js-native-n22

> 配合jsbridge-n22使用的js模块

Latest version **1.0.44** (published 2022-10-24) · ISC license · 0 weekly downloads

## Install

```sh
npm install js-native-n22
pnpm add js-native-n22
yarn add js-native-n22
bun add js-native-n22
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.44 |
| Published | 2022-10-24 |
| First published | 2020-03-18 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 72.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | OSpoon |
| Maintainers | zhangxin_n22, n22client |
| Keywords | native, bridge, js |

## Links

- npm: https://www.npmjs.com/package/js-native-n22
- npm.io page: https://npm.io/package/js-native-n22

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 1.0.44 (latest) — 2022-10-24
- 1.0.43 — 2022-09-07
- 1.0.42 — 2022-08-16
- 1.0.41 — 2022-04-18
- 1.0.40 — 2022-01-04
- 1.0.39 — 2021-09-16
- 1.0.38 — 2021-07-06
- 1.0.37 — 2021-06-01
- 1.0.36 — 2021-05-18
- 1.0.35 — 2021-05-11
- 1.0.34 — 2021-03-05
- 1.0.33 — 2021-03-02
- 1.0.32 — 2021-03-01
- 1.0.31 — 2021-02-25
- 1.0.30 — 2021-02-25
- … 30 more at https://npm.io/package/js-native-n22/versions

## README

### js-native-n22使用指南 ###

[TOC]

[NPM](https://www.npmjs.com/package/js-native-n22)

#### 1. 安装 #### 
```
npm i js-native-n22
```

#### 2. 导入 ####
```
import native from 'js-native-n22'
``` 

#### 3. 使用 ####
```
native.api(data, (content) => {
    ...
}, (error) => {
    ...
})
```

#### API集合 ####

##### 1. toast:信息提示
> 可以通过此API做信息提示

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
text | String | 无 | 提示信息
duration | int | 1:长,0:短 | 显示时长

响应参数: 无
    
API`toast`示例:

```js
native.toast({ text: '你好啊赛利亚', duration: 0 }, (content) => {
}, (error) => {
})
```

##### 2. device:获取设备信息
> 可以通过此API获取设备的信息

请求参数: 无

响应参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
isDeviceRooted | boolean | 无 | 判断设备是否 rooted
isAdbEnabled | boolean | 无 | 判断设备 ADB 是否可用
sDKVersionName | String | 无 | 获取设备系统版本号
sDKVersionCode | int | 无 | 获取设备系统版本码
androidID | String | 无 | 获取设备 AndroidID
macAddress | String | 无 | 获取设备 MAC 地址
manufacturer | String | 无 | 获取设备厂商
model | String | 无 | 获取设备型号
aBIs | String[] | 无 | 获取设备 ABIs
isTablet | boolean | 无 | 判断是否是平板
isEmulator | boolean | 无 | 判断是否是模拟器
uniqueDeviceId | String | 无 | 获取唯一设备 ID
isSameDevice | boolean | 无 | 判断是否同一设备
statusHeight | String | 无 | 留海高度
bottomHeight | String | 无 | 设备底部安全距离

API`device`示例:
```js
native.device((content) => {
    alert(JSON.stringify(content))
}, (error) => {
    alert(error)
})
```

##### 3. close:关闭当前浏览器
> 可以通过此API关闭当前浏览器(相当于PC浏览器的右上角的关闭)

请求参数: 无

响应参数: 无
    
API`close`示例:
    
```js
native.close((content) => {
}, (error) => {
})
```

##### 4. scanQRCode:扫描二维码
> 可以通过此API进行扫描二维码

请求参数: 无

响应参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
qrcode | String | 无 | 识别到的二维码信息

API`scanQRCode`示例:
```js
native.scanQRCode((content) => {
    alert(JSON.stringify(content))
}, (error) => {
    alert(error)
})
```

##### 5. location:获取当前位置
> 可以通过此API定位到当前的位置信息

请求参数: 

参数 | 类型 | 枚举 | 含义
---|---|---|---
needAddress | boolean | true,false | 是否返回地址信息
mockEnable | boolean | true,false | 是否允许模拟位置
httpTimeOut | String | 单位毫秒不低于8000 | 定位超时时间

响应参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
latitude | double | 无 | 获取纬度
longitude | double | 无 | 获取经度
accuracy | float | 无 | 获取精度信息
address | String | 无 | 地址
country | String | 无 | 国家信息
province | String | 无 | 省信息
city | String | 无 | 城市信息
district | String | 无 | 城区信息
street | String | 无 | 街道信息
streetNum | String | 无 | 街道门牌号信息
cityCode | String | 无 | 城市编码
adCode | String | 无 | 地区编码
aoiName | String | 无 | 获取当前定位点的AOI信息
buildingId | int | 无 | 获取当前室内定位的建筑物Id
floor | String | 无 | 获取当前室内定位的楼层
gpsAccuracyStatus | int | 无 | 获取GPS的当前状态
time | String | 无 | 获取定位时间

API`location`示例:
```js
native.location({
    needAddress: true,
    mockEnable: false,
    httpTimeOut: 20000
}, (content) => {
    alert('纬度 : ' + content.latitude)
    alert('经度 : ' + content.longitude)
    alert('地址 : ' + content.address)
    alert(JSON.stringify(content))
}, (error) => {
    alert(error)
})
```

##### 6. storage:将key-value形式的数据存储到手机本地
> 可以通过此API保存和获取存储到手机本地的key-value数据

请求参数: 

参数 | 类型 | 枚举 | 含义
---|---|---|---
mode | int | 详见下方补充mode枚举 | 操作模式
key | String | 模式5不传,其他模式必传 | 待存储数据的key
value | String | 模式1必传,其他模式不传 | 待存储的数据
object | Object | 如value可转为JSON对象,节点存在 | 获取数据如果参数三"value"可转为JSON对象,可取到此节点

补充mode枚举:
```
1:添加数据
2:获取数据
3:是否存在该 key
4:移除该 key
5:清除所有数据
```

响应参数(mode2):
参数 | 类型 | 枚举 | 含义
---|---|---|---
value | String |  | 获取存储到手机的key对应的value内容

响应参数(mode3):
参数 | 类型 | 枚举 | 含义
---|---|---|---
contains | boolean | true:存在,false不存在 | 传入的key在手机中是否有数据存储

API`storage`示例:
```js
native.storage({
    mode: 1,
    key: 'name',
    value: 'zhangxin'
}, (content) => {
        alert(JSON.stringify(content))
}, (error) => {
        alert(error)
})
```

##### 7. openBrowser:打开一个原生浏览器页面
> 可以通过此API在js中再次打开一个原生浏览器页面

请求参数: 

参数 | 类型 | 枚举 | 含义
---|---|---|---
mode | int | 1:自身内核，2:视频播放内核（mode为必传字段）| 浏览器模式
url | String | 无 | 打开的页面的url
navigationConfig | object | 如果需要显示原生导航栏就传值，不需要导航栏传空对象 | 打开的页面显示原生导航栏(备注：详细参数释义请参考插件26)

响应参数: 无
    
API`openBrowser`示例:

```js
native.openBrowser({
    mode: 1,
    url: 'http://xrkj.gitee.io/jsbridge-n22/#/',
    navigationConfig:{
              isShowNavigationBar: '0是隐藏，1是显示',
              isShowShare: '0是隐藏，1是显示',
              navigationBar: {
                changeLeftImage: '0代表黄色返回按钮，1代表黑色返回按钮，2代表灰色返回按钮，3代表白色按钮',
                changeRightImage: [
                  {
                    id: '显示功能的ID',
                    image: '0，1，2，3各代表一种图片显示样式',
                    method: '前端页面需要做的操作',
                    methodDec: '前端方法的描述',
                    sort: 1
                  },
                  {
                    id: '显示功能的ID',
                    image: '0，1，2，3各代表一种图片显示样式',
                    method: '前端页面需要做的操作',
                    methodDec: '前端方法的描述',
                    sort: 1
                  }
                ],
                isShowClose: '是否显示关闭按钮，0是隐藏，1是显示',
                isShowTitle: '是否显示标题 0隐藏1显示',
                navigationBarBackGroundColor: '标题栏的背景颜色',
                title: '标题栏的标题',
                titleColor: '标题显示的颜色',
                titleSize: '标题显示的字体的大小字号'
              },
              shareModel: {
                shareDescription: '分享的内容',
                imageUrl: '分享图标的url',
                shareTitle: '分享标题',
                shareUrl: '分享的跳转链接'
              }
            }
}, (content) => {
    alert(JSON.stringify(content))
}, (error) => {
    alert(error)
})
```

```js
native.openBrowser({
    mode: 1,
    url: 'http://xrkj.gitee.io/jsbridge-n22/#/',
  }, (content) => {
    alert(JSON.stringify(content))
  }, (error) => {
    alert(error)
  })
```

##### 8. security:调用原生3DES加解密和MD5编码
> 可以通过此API调用原生3DES加解密和MD5编码

请求参数: 

参数 | 类型 | 枚举 | 含义
---|---|---|---
mode | int | 1:获取MD5T验签,2:3des加密,3:3des解密 | 
key | String | 指定长度24位,设置`default`可使用默认秘钥 | 加/解密时的秘钥
content | String | 无 | 待加/解密的内容


响应参数:

参数 | 类型 | 枚举 | 含义
---|---|---|---
encoder | String | 无 | 加密成功后返回
decoder | String | 无 | 解密成功后返回
sign | String | 无 | 成功获取验签返回

    
API`security`示例:

```js
native.security({
    mode: 1,
    key: 'xxx',
    content: '1234567890'
}, (content) => {
    alert(JSON.stringify(content))
}, (error) => {
    alert(error)
})
```
##### 9. callPhone:调用原生打电话功能
> 可以通过此API调用原生打电话功能

请求参数:

参数 | 类型 | 枚举 | 含义
---|---|---|---
phoneNumber | String | 无 | 电话号码
extensionNumber | String | 无 | 可以进行拨打分机号,示例为",1"

响应参数:无

API`callPhone`示例:

```js
 native.callPhone({
         phoneNumber: '15617883302',
         extensionNumber: ',1'
       }, (content) => {
         alert(JSON.stringify(content))
       }, (error) => {
         alert(error)
       })
```

##### 10. sendMsg:调用原生发短信功能
> 可以通过此API调用原生发短信

请求参数:

参数 | 类型 | 枚举 | 含义
---|---|---|---
phoneNumber | String | 无 | 电话号码
msgInfo | String | 无 | 要发送的信息内容

响应参数: 无

API`sendMsg`示例:

```js
 native.sendMsg({
         phoneNumber: '13333333333',
         msgInfo: '我是测试信息'
       }, (content) => {
         alert(JSON.stringify(content))
       }, (error) => {
         alert(error)
       })
```
##### 11. openContacts:调用原生获取联系人列表信息
> 可以通过此API调用原生获取联系人列表信息

请求参数: 无

响应参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
data | 数组 | [{'id':'序号',name':'联系人姓名','mobilePhone':'联系人电话'}] | 联系人的信息列表

API`openContacts`示例:

```js
 native.openContacts((content) => {
         alert(JSON.stringify(content))
       }, (error) => {
         alert(error)
       })
```
##### 12. openWeChat:调用原生打开微信
> 可以通过此API调用原生打开微信

请求参数: 无

响应参数: 无

API`openWeChat`示例:

```js
 native.openWeChat((content) => {
         alert(JSON.stringify(content))
       }, (error) => {
         alert(error)
       })
```
##### 13. switchScreen:调用原生切换横竖屏
> 可以通过此API调用原生切换横竖屏

请求参数: 无

响应参数: 无

API`switchScreen`示例:

```js
 native.switchScreen((content) => {
         alert(JSON.stringify(content))
       }, (error) => {
         alert(error)
       })
```
##### 14. shareWeChat:微信分享
> 可以通过此API进行微信分享(集成时必须把名称为wxapi的包以及目录下的文件放到项目中与项目包名同级别)

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
platform | String | 1:分享到好友会话,2:分享到朋友圈 | 分享类型的标志
webPageUrl | String | 无 | 分享跳转的链接
iconUrl | String | 无 | 分享的logo图片地址
title | String | 无 | 分享的标题
desc | String | 无 | 分享的内容

响应参数: 无

API`shareWeChat`示例:

```js
native.shareWeChat({
    platform: '1',
    webPageUrl: 'http://n22.online/',
    iconUrl: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=2841648446,236398816&fm=26&gp=0.jpg',
    title: '测试分享标题',
    desc: '测试分享内容'
  }, (content) => {
    alert(JSON.stringify(content))
  }, (error) => {
    alert(error)
  })
```

##### 15. idCardScan:通过旷世提供的SDK获取身份证正面反图像
> 可以通过此API通过旷世提供的SDK获取身份证正面反图像

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
isVertical | bool | 必传 | 是否竖屏识别
cardType | int | 1:人像面，2:国徽面 | 证件朝向

响应参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
portraitimg_base64 | String | base64 | 证件肖像图像
idcardimg_base64 | String | base64 | 证件图像

API`idCardScan`示例:

```js
native.idCardScan({
    'isVertical': true, // 是否竖屏识别
    'cardType': 1 // 1:人像面，2:国徽面
  }, (content) => {
    alert(JSON.stringify(content))
  }, (error) => {
    alert(error)
  })
```

##### 16. faceScan:通过旷世提供的SDK获取人脸图像
> 可以通过此API通过旷世提供的SDK获取人脸图像

请求参数: 无

响应参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
faceimg_base64 | String | base64 | 最佳人脸图像

API`faceScan`示例:

```js
native.faceScan((content) => {
    alert(JSON.stringify(content))
  }, (error) => {
    alert(error)
  })
```

##### 17. pushData:可以将H5中的数据推送到原生层
> 可以通过此API可以将H5中的数据推送到原生层

> 使用场景:如第三方监控平台SDK需要获取H5登陆成功后的用户信息,H5端可以使用此插件进行数据推送,原生端注册广播并将接收到的数据发送给监控平台,注意广播仅支持动态注册(涉及原生部分)

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
event | String |  | 推送数据的事件名称
data | Map<String,String> | key-value | 推送的具体数据

响应参数: 无

API`pushData`示例:

```js
native.pushData({
    event: 'push_agent_data',
    data: {
      agentName: 'zhangxin',
      agentCode: '1100011010',
      orgCode: '0001'
    }
  }, (content) => {
    alert(JSON.stringify(content))
  }, (error) => {
    alert(error)
  })
```
##### 18. openCamera:打开相机拍照和打开相册选择照片
> 可以通过此API打开相机拍照和打开相册选择照片

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
openFlag | String | 传1.打开相机,2.是打开相册 | 打开相机或者打开相册的标志
isCompress | int | 传1.压缩,2.不压缩 | 压缩照片的标志
compressMutiple | float | 压缩大小的比例,以M为单位,比如限制500K就传0.5 | 压缩照片的大小
photoNum | int | 传0-9之间的数值,当打开相机操作时,该参数可不传 | 选择相册中照片的数量
isUpLoadCos | String | 0：不上传，1：上传 | 是否上传cos
isAppointUpLoadCos | String | 0：不指定，1：指定 2：上传团险培训桶 | 是否指定上传cos路径
appointUpLoadCosUrl | String | 上传路径 | 上传路径

响应参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
paths | String[] | 无 | 返回选中照片在手机中存储的路径

API`openCamera`示例:

```js
native.openCamera({
        openFlag: '2', // 打开相机,1.打开相机,2.是打开相册
        isCompress: 1, // 1.压缩,2.不压缩
        compressMutiple: 0.5, // 1.压缩,2.不压缩
        photoNum: 3, // 打开相册选择照片的数量,当打开相机时该参数可不传
        isUpLoadCos: '1', // 选择照片时是否需要进行cos上传
        isAppointUpLoadCos:'0',//是否指定上传cos路径
        appointUpLoadCosUrl:''//上传路径
      }, (content) => {
        alert(JSON.stringify(content))
      }, (error) => {
        alert(error)
      })
```

##### 19. picPreview:支持多张图片预览(可支持单张长图显示)
> 可以通过此API支持多张图片预览(可支持单张长图显示)

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
images | String[] | 图片Url地址数组

响应参数: 无

API`picPreview`示例:

```js
native.picPreview({
    images: [
      'http://img6.16fan.com/201510/11/005258wdngg6rv0tpn8z9z.jpg',
      'http://img6.16fan.com/201510/11/013553aj3kp9u6iuz6k9uj.jpg',
      'http://img6.16fan.com/201510/11/011753fnanichdca0wbhxc.jpg',
      'http://img6.16fan.com/201510/11/011819zbzbciir9ctn295o.jpg',
      'http://img6.16fan.com/201510/11/004847l7w568jc5n5wn385.jpg',
      'http://img6.16fan.com/201510/11/004906z0a0a0e0hs56ce0t.jpg',
      'http://img6.16fan.com/201510/11/004937pwttwjt0bgtoton7.jpg',
      'http://img6.16fan.com/201510/11/004946t38ybzt8bq8c838y.jpg',
      'http://img6.16fan.com/201510/11/004955d8ftz3t1sttt7ft7.jpg',
      'http://img6.16fan.com/201510/11/005027qy2g55yyglb59zdu.jpg',
      'http://img6.16fan.com/201510/11/005229bbtxkczcl0btmw8e.jpg',
      'http://img6.16fan.com/attachments/wenzhang/201805/18/152660818127263ge.jpeg',
      'http://img6.16fan.com/attachments/wenzhang/201805/18/152660818716180ge.jpeg'
    ]
  }, (content) => {
    alert(JSON.stringify(content))
  }, (error) => {
    alert(error)
  })
```
##### 20. openContact:调用原生获取单个联系人信息
> 可以通过此API调用原生获取单个联系人信息

请求参数: 无

响应参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
name | String | 无 | 联系人的名字
mobilePhone | String | 无 | 联系人的电话
id | String | 无 | 联系人的序号

API`openContact`示例:

```js
 native.openContact((content) => {
         alert(JSON.stringify(content))
       }, (error) => {
         alert(error)
       })
```
##### 21. dictation:语音识别听写
> 可以通过此API调用语音识别插件

请求参数: 无

响应参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
result | String | 无 | 语音识别结果

API`dictation`示例:

```js
  native.dictation((content) => {
         alert(JSON.stringify(content))
       }, (error) => {
         alert(error)
       })
```
##### 22. loginOperation:登录和退出登录操作
> 可以通过此API调用原生登录页面和退出登录

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
loginFlag | String | 1:调用登录. 2:是调用退出登录 | 登录和退出登录的标志

响应参数: 无


API`loginOperation`示例:

```js
  native.loginOperation({
          loginFlag: '1' //登录
        }, (content) => {
          alert(JSON.stringify(content))
        }, (error) => {
          alert(error)
        })
```

##### 23. openUrl:调用原生打开资源链接
> 注意: 目前仅支持IOS
> 可以通过此API调用原生打开网页查看资源信息\
> 可以通过此API调用原生打开第三方应用\
> 可以通过此API调用原生系统功能（比如打电话、发短信等）

请求参数:

参数 | 类型 | 枚举 | 含义
---|---|---|---
url | String | 无 | 资源链接

响应参数: 无

API`openUrl`示例:

```js
 native.openUrl({
         url: 'https://mitphone.sunlife-everbright.com:8010/com.ifp.ipartner/proposaMsg?uuid=657c1962b5a44b9ebec1ea53b57abd6b',
       }, (content) => {
         alert(JSON.stringify(content))
       }, (error) => {
         alert(error)
       })
```

##### 24. openPDF:打开PDF文件
> 可以通过此API调用原生页面打开PDF文件

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
title | String | 无 | 打开PDF的标题
url | String | 无 | PDF的链接
isShowShare | String | 0:隐藏，1：显示 | 是否显示分享按钮
name | String | 无 | PDF文件标题
mode | String | 0:普通模式，1：显示阅读按钮模式 | 是否显示我已阅读按钮
isRecordReadTime | String | 必传 0：否，1：是 | 是否记录阅读时长并上传
pdfOperationId | String | 必传 | 当前打开PDF的文件id，用于上传服务端

响应参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
mode | String | 0：未阅读，1：已阅读| 返回的已阅读或者未阅读的标识

API`openPDF`示例:

```js
  native.openPDF({
          title: 'PDF的标题',
          url: 'https://xinyidongzhanyeguangsubao-st-1254235118.cos.ap-beijing.myqcloud.com/Default/HCT010-T.pdf', 
          isShowShare:"0", //0:隐藏，1：显示
          name:"PDF标题",//PDF文件标题
          isRecordReadTime:"1", // 0：否，1：是
          mode:"1", //0:普通模式，1：显示阅读按钮模式
          pdfOperationId:"01" //当前打开PDF的文件id
        }, (content) => {
          alert(JSON.stringify(content))
        }, (error) => {
          alert(error)
        })
```
##### 25. goHome:回到首页
> 可以通过此API调用原生页面回到首页

请求参数: 无
响应参数: 无

API`goHome`示例:

```js
  native.goHome((content) => {
          alert(JSON.stringify(content))
        }, (error) => {
          alert(error)
        })
```
##### 26. showNavigationBar:显示原生导航栏
> 可以通过此API调用原生页面的导航栏

请求参数: 
参数 | 类型 | 枚举 | 含义
---|---|---|---
isShowNavigationBar | String | 0是隐藏，1是显示 | 显示原生的导航栏（示例：'1'）
navigationBar | Object | 无 | 导航栏对象
isShowShare | String | 0是隐藏，1是显示 | 是否显示分享按钮（示例：'0'）
changeLeftImage | String | 0代表黄色返回按钮，1代表黑色返回按钮，2代表灰色返回按钮，3代表白色按钮 | 显示不同样式的导航栏（备注：不同样式的返回按钮需要不同背景的导航颜色作为支撑,示例：'0'）
changeRightImage | 数组 | 无 | 显示导航栏上的功能的数组
id | String | 无 | 显示功能的ID（示例：'13'）
image | String | 0，1，2，3各代表一种图片显示样式 | 显示功能的图片（示例：'0'）
method | String | 无 | 前端页面需要做的操作（前端页面需要调用什么方法做什么操作需要传入方法）
methodDec | String | 无 | 前端方法的描述
sort | int | 无 | 前端方法显示在导航栏内的顺序
isShowClose | String | 0是隐藏，1是显示 | 是否显示关闭按钮（示例：'0'）
isShowTitle | String | 0是隐藏，1是显示 | 是否显示标题（示例：'0'）
navigationBarBackGroundColor | String | 无 | 标题栏的背景颜色（示例：'#333333'）
title | String | 无 | 标题栏的标题（示例：'我是测试标题'）
titleColor | String | 无 | 标题显示的颜色（示例：'#333333'）
titleSize | String | 无 | 标题显示的字体的大小字号（示例：'15'，代表15号标题）
shareModel | Object | 无 | 分享的信息的对象
shareDescription | String | 无 | 分享的内容
imageUrl | String | 无 | 分享图标的url
shareTitle | String | 无 | 分享标题
shareUrl | String | 无 | 分享的跳转链接

响应参数: 无

API`showNavigationBar`示例:

```js
  native.showNavigationBar({
          isShowNavigationBar: '0是隐藏，1是显示',
          isShowShare: '0是隐藏，1是显示',
          navigationBar: {
            changeLeftImage: '0代表黄色返回按钮，1代表黑色返回按钮，2代表灰色返回按钮，3代表白色按钮',
            changeRightImage: [
              {
                id: '显示功能的ID',
                image: '0，1，2，3各代表一种图片显示样式',
                method: '前端页面需要做的操作',
                methodDec: '前端方法的描述',
                sort: 1
              },
              {
                id: '显示功能的ID',
                image: '0，1，2，3各代表一种图片显示样式',
                method: '前端页面需要做的操作',
                methodDec: '前端方法的描述',
                sort: 1
              }
            ],
            isShowClose: '是否显示关闭按钮，0是隐藏，1是显示',
            isShowTitle: '是否显示标题 0隐藏1显示',
            navigationBarBackGroundColor: '标题栏的背景颜色',
            title: '标题栏的标题',
            titleColor: '标题显示的颜色',
            titleSize: '标题显示的字体的大小字号'
          },
          shareModel: {
            shareDescription: '分享的内容',
            imageUrl: '分享图标的url',
            shareTitle: '分享标题',
            shareUrl: '分享的跳转链接'
          }
        }, (content) => {
          alert(JSON.stringify(content))
        }, (error) => {
          alert(error)
        })
```
##### 27. GDINativePushData:原生推送前端页面数据方法
> 可以通过此API调用原生推送前端页面数据方法

请求参数:无

响应参数: 
参数 | 类型 | 枚举 | 含义
---|---|---|---
data | String | 操作成功或者操作失败 | 返回的内容

API`GDINativePushData`示例:

```js
  native.bridge.registerhandler('GDINativePushData', (data, responseCallback) => {
        alert(JSON.stringify(data))//在此方法内做前端页面的操作
        responseCallback('GDINativePushData OK')
      })
```
##### 28. showLoading: 加载或者隐藏原生的loading框
> 可以通过此API加载或者隐藏原生的loading框

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
isShow | String | 无 | 是否显示loading 0隐藏,1显示

响应参数:无

API`showLoading`示例:

```js
  native.showLoading({
          isShow: '1',
        }, (content) => {
          alert(JSON.stringify(content))
        }, (error) => {
          alert(error)
        })
```
##### 29. modifyPwd: 调用原生页面来修改密码
> 可以通过此API调用原生页面来修改密码

请求参数:无

响应参数:无

API`modifyPwd`示例:

```js
  native.modifyPwd((content) => {
          alert(JSON.stringify(content))
        }, (error) => {
          alert(error)
        })
```

##### 30. closeAndResult: 关闭当前WebView并将data进行派发
> 可以通过此API关闭当前WebView并将data进行派发

请求参数:
 参数 | 类型 | 枚举 | 含义
 ---|---|---|---
 data | String | 无 | 派发信息
 
 响应参数: 无
     
 API`closeAndResult`示例:

```js
native.closeAndResult({ data: 'PAGE_OK' }, (content) => {
        alert(JSON.stringify(content))
      }, (error) => {
        alert(error)
      })

//可选 接受关闭派发的data数据
native.bridge.registerhandler('GDINativePushData', (data, responseCallback) => {
      // alert(JSON.stringify(data))
      console.log(data)
      responseCallback('GDINativePushData OK')
    })
```
##### 31. faceVerifyScan:通过腾讯提供的SDK识别人脸信息
> 可以通过此API识别人脸信息

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
faceVerifyType | int | 必传 | 1：光线活体，2：动作活体，默认光线活体。
bizId | String | 相关业务ID（保单唯一标识，保单号）
ext | String | 扩展信息（返回时原样返回，可为空）
cardType | String | 证件类型（必传字段，具体字段释义详见码表值）
idCard | String | 身份证号（必传字段）
name | String | 姓名（必传字段）
userId | String | 用户ID（可为空）

响应参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
verifyFlag | int | 0:失败，1：成功 | 原生人脸识别后的返回结果
verifyMsg | String | 无 | 返回成功或者失败的原因

API`faceVerifyScan`示例:

```js
native.faceVerifyScan({
    'faceVerifyType': 1, // 光线活体（默认光线活体）。
    'bizId': '2020071320200713', // 保单唯一标识，保单号
    'ext': '测试保单', // 扩展信息（返回时原样返回，可为空）
    'cardType': '11', // 证件类型（必传字段，11代表身份证）
    'idCard': '110000197056328541', // 身份证号（必传字段）
    'name': '张三', // 姓名（必传字段）
    'userId': '123165464312', // 用户ID（可为空）
    'funCode': '1000' // 功能代码
  }, (content) => {
    alert(JSON.stringify(content))
  }, (error) => {
    alert(error)
  })
```
##### 32. caSignature:通过CA提供的SDK进行签名
> 可以通过此API进行签名

请求参数: 无

响应参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
caSignatureBase64 | String | 无 | 识别图像的base64图片
caSignatureByte | byte[] | 无 | 识别图像的字符流

API`caSignature`示例:

```js
native.caSignature("",(content) => {
    alert(JSON.stringify(content))
  }, (error) => {
    alert(error)
  })
```
##### 33. savePicture:保存图片到本地相册
> 可以通过此API进行保存图片

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
savePictureUrl | String | 必传 | 图片的地址。

响应参数:
无

API`savePicture`示例:

```js
native.savePicture({
    'savePictureUrl': "图片地址" // 保存图片的地址。
},(content) => {
    alert(JSON.stringify(content))
  }, (error) => {
    alert(error)
  })
```
##### 34. sharePicture:分享图片到微信好友和朋友圈
> 可以通过此API进行分享图片到微信好友

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
sharePictureUrl | String | 必传 | 图片的地址。
sharePictureType | String | 必传 | 图片：0，文档：1。
shareFileName | String | 非必传 | 当分享类型为文档时传标题
shareType | String | 必传 | 分享类型0：好友，1：朋友圈。（当分享类型为朋友圈时，sharePictureType不能为1）

响应参数:
无

API`sharePicture`示例:

```js
native.sharePicture({
    'shareType':'0',
    'sharePictureUrl': "图片地址", // 分享图片的地址。
    'sharePictureType':'0',
    'shareFileName':'文档标题'
},(content) => {
    alert(JSON.stringify(content))
  }, (error) => {
    alert(error)
  })
```
##### 35. buryPoint:前端调用插件进行数据埋点操作
> 可以通过此API进行进行数据埋点操作

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
domain | String | 必传 | 传参的类型  安卓：Android-APP   苹果：iOS-APP  前端：H5   分享：share-H5
path | String | 必传 | 当前页面的路由地址
user | String | 非必传 | 当前用户ID
duration | int | 非必传 | 持续时间
type | String | 非必传 | 类型
interest | String | 非必传 | 兴趣点
birth | long | 必传 | 当前时间戳
eventId | String | 必传 | 当前功能ID
module | String | 必传 | 当前模块名字
响应参数:
无

API`buryPoint`示例:

```js
native.buryPoint({
    'domain':'0',
    'path': "https://mityz.sunlife-everbright.com:8443/app/qrcode/index.html#/qrcode/index", // 分享图片的地址。
    'user':'1100000006',
    'duration':'0',
    'type':'click',
    'interest':'HCT001',
    'birth':'12345678',
    'eventId':'1001',
    'module':'FRM'
},(content) => {
    alert(JSON.stringify(content))
  }, (error) => {
    alert(error)
  })
```
##### 36. operationMedia:前端调用插件进行视频播放，音频播放和打开PDF文件
> 可以通过此API进行进行视频播放和打开PDF文件

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
path | String | 必传 | 当前要操作的资源的URL
operationId | String | 必传 | 当前播放视频的ID
operationClassId | String | 非必传 | 班级的ID，当前为个险培训时此字段必传，当前为团险培训时非必传
mediaType | String | 必传 | 0：视频 1：音频，当前播放资源的类型，目前支持音频和视频
branchType | String | 必传 | 0：团险 1：个险，当前播放资源上传播放时间个险和团险的渠道区分

响应参数:
无

API`operationMedia`示例:

```js
native.operationMedia({
    'operationId':'05',
    'path': "https://mityz.sunlife-everbright.com:8443/app/qrcode/index.html#/qrcode/index", // 播放视频的地址。
    'mediaType': "0", // 播放视频的地址。
    'branchType': "0", // 当前播放资源上传播放时间个险和团险的渠道区分。
    'operationClassId': "01" // 当前班级ID。
},(content) => {
    alert(JSON.stringify(content))
  }, (error) => {
    alert(error)
  })
```
##### 37. setImmerseBar:前端调用插件进行显示和设置沉浸栏颜色
> 可以通过此API进行进行视频播放和打开PDF文件

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
isShow | String | 非必传，0：隐藏，1：显示 | 当前要操作的视频的URL
immerseBarColor | String | 当需要改变沉浸栏的颜色时必传 | 沉浸栏的背景颜色（示例：'#333333'）

响应参数:
无

API`setImmerseBar`示例:

```js
native.setImmerseBar({
    'isShow':'01',
    'immerseBarColor': "#333333" // 播放视频的地址。
},(content) => {
    alert(JSON.stringify(content))
  }, (error) => {
    alert(error)
  })
```
##### 38. faceVerify:前端调用插件进行人脸识别
> 可以通过此API进行进行进行人脸识别

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
sdkModel | int | 必传 | 1：光线活体，2：动作活体，默认光线活体。
appid | String | 相关业务ID
ext | String | 扩展信息（返回时原样返回，可为空）
id | String | 识别ID
minFaceScore | float | 腾讯人脸识别最小对比值
minLivingScore | float | 旷世人脸识别最小对比值
nonce | String | 生成的签名串
provider | String | 腾讯和旷世的区分标识
sign | String | 签名
thirdId | String | 腾讯人脸识别时是ID标识码，旷世人脸识别时是图片名字
userId | String | 用户ID
version | String | 版本号

响应参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
verifyFlag | int | 0:失败，1：成功 | 原生人脸识别后的返回结果
verifyMsg | String | 无 | 返回成功或者失败的原因


API`faceVerify`示例:

```js
native.faceVerify({
    'sdkModel':"1",//1：光线活体，2：动作活体，默认光线活体。
    'appid':"IDAcy4WR",//相关业务ID
    'ext':"",//扩展信息（返回时原样返回，可为空）
    'id':"cd8b93c5e2e64c708e3c84ef9eadf167",//识别ID
    'minFaceScore':80.0,//腾讯人脸识别最小对比值
    'minLivingScore':80.0,//旷世人脸识别最小对比值
    'nonce':"4eb6d2655f214cfc929870e843a4438d",//生成的签名串
    'provider':"livingTencent",//腾讯和旷世的区分标识
    'sign':"eb73314cc1e2ad5c3414f525f286e616d9f0657d",//签名
    'thirdId':"wb070764e7785d816c372e233d46bddf",//腾讯人脸识别时是ID标识码，旷世人脸识别时是图片名字
    'userId':"210881199504110839",//用户ID
    'version':"1.0.0"//版本号
},(content) => {
    alert(JSON.stringify(content))
  }, (error) => {
    alert(error)
  })
```
##### 39. upLoadFileData:打开本地的资料文件包括音频，视频，PDF资料
> 可以通过此API打开本地的资料文件包括音频，视频，PDF资料

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
upLoadType | String | 1.Mp3音频文件,2.视频文件,3.PDF文件 | 打开本地的资料文件包括音频，视频，PDF资料
isUpLoadCos | String | 0：不上传，1：上传 | 是否上传cos
isAppointUpLoadCos | String | 0：不指定路径，1：指定路径 2：上传团险培训桶 | 是否指定上传cos路径
appointUpLoadCosUrl | String | 上传路径 | 上传路径

响应参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
paths | String[] | 无 | 返回选中照片在手机中存储的路径
dataDuration | String | 无 | 返回选中资料的时长仅限音频和视频

API`upLoadFileData`示例:

```js
native.upLoadFileData({
        upLoadType: '2', // 打开本地的资料文件包括音频，视频，PDF资料
        isUpLoadCos: '1', // 是否上传cos
        isAppointUpLoadCos:'0',//是否指定上传cos路径
        appointUpLoadCosUrl:''//上传路径
      }, (content) => {
        alert(JSON.stringify(content))
      }, (error) => {
        alert(error)
      })
```
##### 40. securityData:加密字符串
> 可以通过此API加密数据

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
upLoadType | String | 1:加密数据类型,2:解密数据类型 | 加密数据或者解密数据
upLoadData | String | 无 | 加密数据或者解密数据

响应参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
outputData | String | 无 | 返回数据


API`securityData`示例:

```js
native.securityData({
    upLoadData: 'fasdfasdfasdf' // 返回数据
      }, (content) => {
        alert(JSON.stringify(content))
      }, (error) => {
        alert(error)
      })
```
##### 41. forbidBackKey:禁止返回键
> 可以通过此API加密数据

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
forbidBackKeyFlag | String | 0:禁止返回,1:解除禁止 | 禁止页面返回键响应时间


响应参数:
无


API`forbidBackKey`示例:

```js
native.forbidBackKey({
    forbidBackKeyFlag: '0' // 返回数据
      }, (content) => {
        alert(JSON.stringify(content))
      }, (error) => {
        alert(error)
      })
```
##### 42. openExternalSystem:打开外部系统APP
> 可以通过此API打开外部系统APP

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
systemSource | String | 1:APP端,2:公众号 | 跳转外部系统的平台分类
data | String | 无 | 订单号
agentNo | String |无 | 代理人工号
orderSource | String | 1:扫码入件 2:手动入件 3:系统对接、推送入件 4:跳转入件 | 调用系统的平台类型
scanTime | String |无 | 时间戳

响应参数:
无

API`openExternalSystem`示例:

```js
native.openExternalSystem({
    systemSource: '0',            // 跳转外部系统的平台分类
    data: '123456123123',         // 订单号
    agentNo: '12456131',          // 代理人工号
    orderSource: '1',             // 调用系统的平台类型
    scanTime: '123456789'        // 生成二维的时间戳
      }, (content) => {
        alert(JSON.stringify(content))
      }, (error) => {
        alert(error)
      })
```
##### 43. openDownloadVideoPage:前端调用插件下载视频
> 可以通过此API下载视频

请求参数:
参数 | 类型 | 枚举 | 含义
---|---|---|---
downLoadFlag | String | 0:下载视频,1:跳转下载列表 | 前端调用插件下载视频或者跳转下载列表

响应参数:
无

API`openDownloadVideoPage`示例:

```js
native.openDownloadVideoPage({
    downLoadFlag: '0' // 0:下载视频,1:跳转下载列表
      }, (content) => {
        alert(JSON.stringify(content))
      }, (error) => {
        alert(error)
      })
```

---
_Source: https://npm.io/package/js-native-n22 · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
