更新记录

1.0.4(2022-04-07)

修复IOS打包问题

1.0.3(2022-03-28)

百度Android SDK升级到2.0 ,适配新的验证方式

1.0.2(2021-04-26)

解决ISO正式证书打包异常问题。

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:9 - 15

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


示例APP

下载地址:http://john.xunihb.com/zbsr

使用步骤

  1. 注册百度在管理控制台中新建一个文字识别应用,并且请填写正确的包名

    图为官方的,如果需要IOS也是要填写

  2. 在应用详情页面下载对应应用的授权文件

    图为官方的,IOS也是需要下载授权文件的

  3. 将百度授权文件aip.license放在如下文件夹中。

    新创建的应用 Android授权文件是 aip-ocr.license,就的应用还是原来的aip.license

    Android:nativeplugins/ChuJC-Baidu-OCR/android/assets/aip-ocr.license
    IOS:nativeplugins/ChuJC-Baidu-OCR/ios/aip.license。

    注意文件夹名称与路径必须完全一致,没的对应的文件夹请创建,nativeplugins 文件夹必须放在项目根目录下

  4. 配置插件,路径:manifest.json > App原生插件配置 > 选择云端插件

  5. 权限添加权限 路径:manifest.json > App权限配置

Android 需要添加如下权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

IOS需要添加如下权限

NSPhotoLibraryUsageDescription (相册-读)
NSCameraUsageDescription  (摄像头)

特点

  • 统一的返回结构 Android 与 IOS 乃至服务端使用API的返回体是一致的
  • 可以按官方文档设置参数,来实现差异需求

    比如,想要返回的识别的身份证照片,需要识别识别行驶证副页,比如需要对驾驶证参数做归化处理等,具体查看官方接口参数文档

  • 唯一自定义参数可以返回识别的参数,以便服务端存档
  • 拍照显示提示语统一,Android 与 IOS 拍摄身份证、银行卡、驾驶证、行驶证等
  • 银行卡、驾驶证、行驶证等显示框提醒更加友好

调用方法如下

文字描述后面为调用方法注意方法名称大小写

  • 身份证正面 idCardFront
  • 身份证背面 idCardBack
  • 银行卡 bankCard
  • 通用文字识别(含位置信息)general
  • 通用文字识别(含生僻字版)generalEnchanced
  • 通用文字识别(不含位置信息版)generalBasic
  • 通用文字识别(高精度,带位置信息)generalAccurate
  • 通用文字识别(高精度,不带位置信息)generalAccurateBasic
  • 网图识别 webImage
  • 身份证正面识别(本地)idCardFrontLocal 自动识别效果
  • 身份证背面识别(本地)idCardBackLocal 自动识别效果
  • 驾驶证识别 drivingLicense
  • 行驶证证识别 vehicleLicense
  • 车牌识别 plateLicense
  • 通用票据识别 receipt
  • 营业执照识别 businessLicense
  • iOCR 通用版iOCR

1.0.1 新增(Android版本)

相关接口请求参数与返回数据结构请看 百度AI官方文档 https://ai.baidu.com/ai-doc/OCR/Ck3h7y2ia

  • 手写 handWriting
  • 护照 passport
  • 二维码 qrcode
  • 彩票 lottery
  • 增值税发票 vatInvoice
  • 数字 numbers
  • 名片 businessCard

参数说明与返回结构体

自定义参数 is_return_image 是否返回用于识别的图片 当为字符串类型的true

注意百度文字识别中参数值几乎都是字符串类型,请注意看文档参数值类型说明

返回结构体中新增:IOS系统 image_result 安卓系统return_image (base64编码的字符串)

安卓与IOS返回的字段名称未统一,需要注意判断一下

if(uni.getSystemInfoSync().platform == 'android'){
img_res = result.return_image
}else{
img_res = result.image_result
}

其他调用参数可以参考百度官网文档中定义的参数百度文字识别

https://ai.baidu.com/ai-doc/OCR/rk3h7xzck

IOS与Android的返回结构体都统一为官方的返回结构体,避免出现差异。可以参考官方文档中返回结构体说明

调用示例

可以参考示例工程

const ocr = uni.requireNativePlugin('ChuJC-Baidu-OCR');
...
// 身份证正面
handelIdCardFront() {
    ocr.idCardFront({
        detect_photo: 'true', // 百度文档中的参数选型 是否检测头像内容,默认不检测。可选值:true-检测头像并返回头像的 base64 编码及位置信息 具体参考百度文档 https://ai.baidu.com/ai-doc/OCR/rk3h7xzck
        is_return_image: 'true' // 自定义参数 主要用于是否返回识别的图片  返回base64格式化的 图片
    }, result => {
        const msg = JSON.stringify(result);
        // result 返回结构体可以参考官网API文档
        uni.showModal({
            title: "返回信息",
            content: msg,
            success: function(res) {
                if (res.confirm) {
                    console.log('用户点击确定');
                } else if (res.cancel) {
                    console.log('用户点击取消');
                }
            }
        });
    });
}
...

异常说明

当返回结构中出现了 error_codeerror_msg 时说明发生异常 请参考官方错误码说明

可以使用示例APP,测试银行卡识别,随便拍摄一张不是银行卡的照片就可以出现异常提醒

{
  "error_code": "110",
  "error_msg": "Access token invalid or no longer valid"
}

其他

目前仅开发了如上调用方法,如果还有其他需求、问题可以发邮件到john1668@qq.com

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android 需要添加如下权限 ``` <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> ``` IOS需要添加如下权限 ``` NSPhotoLibraryUsageDescription (相册-读) NSCameraUsageDescription (摄像头) ```

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件自身不采集任何数据,插件使用的百度文字识别SDK采集数据, 具体请参考其官方说明:https://ai.baidu.com/ai-doc/OCR/Ckibizymu

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问