更新记录
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 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
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
使用步骤
-
注册百度在管理控制台中新建一个文字识别应用,并且请填写正确的包名
图为官方的,如果需要IOS也是要填写
-
在应用详情页面下载对应应用的授权文件
图为官方的,IOS也是需要下载授权文件的
-
将百度授权文件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 文件夹必须放在项目根目录下
-
配置插件,路径:manifest.json
>
App原生插件配置>
选择云端插件 -
权限添加权限 路径: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_code
与 error_msg
时说明发生异常 请参考官方错误码说明
可以使用示例APP,测试银行卡识别,随便拍摄一张不是银行卡的照片就可以出现异常提醒
{
"error_code": "110",
"error_msg": "Access token invalid or no longer valid"
}
其他
目前仅开发了如上调用方法,如果还有其他需求、问题可以发邮件到john1668@qq.com