更新记录

1.2.5(2025-04-28)

  • Android支持设置分辨率

1.2.4(2025-03-10)

  • Android支持设置横屏

1.2.3(2025-03-06)

  • Android支持设置前置/后置摄像头
查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 12.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 适用版本区间:13 - 16

原生插件通用使用流程:

  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主要满足拍照和清晰度即可,但在一些特殊的业务场景中,如进件、签署、校验、批改等提交资料的情况下,对特别是银行卡、身份证、合同、试卷、纸张文档这些资料的审核要求较高。

  • 普通拍照的情况下用户必须很刻意地去摆正、调整拍摄角度及距离,甚至拍很多张,才能上传一张满意的文档效果图。还可以连续上传很多张,让审核方一个个去看,都是以防审核阶段驳回。

  • 一旦被驳回,就可能又要重复这波操作,审核方也要重新审一遍,非常冗余。双方都会很煎熬,流程进展也非常缓慢,较大的业务甚至会影响企业的日盈利。

  • 一些手机原生相机支持文档捕捉/修正,但需要先离开APP去拍照,在相册里调整,再回到APP中的相册去选择,这样也很麻烦

该功能就是解决这一现象,减少资料驳回的时间浪费,让双方都可以轻松地完成业务节点,提高办理的效率和成功率

平台支持

Android Api 19+、iOS 13+

请求权限

摄像头

  • Android:AndroidManifest.xml 中配置
<uses-permission android:name="android.permission.CAMERA" />
  • iOS:Info.plist 中配置
<key>NSCameraUsageDescription</key>
<string>xxxAPP需要您的同意,才能使用摄像头,以便于xxx</string>

功能一览

功能 Android iOS
关闭拍照声音
设置识别频率
设置最大数量
双指缩放
点屏聚焦
矫正识别
缓存识别
手动调整
返回多图
前置/后置摄像头
竖屏/横屏
分辨率

插件使用

无需多言,直接上使用代码

const docCorrect = uni.requireNativePlugin('doc-correct')
docCorrect.detect({
    shutterSound: true,// 仅Android,是否具有拍照声音,默认 true
    recognizeMillisecond: 1000,// 仅Android,识别频率(毫秒),非负,默认 1000
    maxCount: 9,// 最大数量,默认0 不限制
    cameraId: 0,// 仅Android,摄像头 默认0,0-后置,1-前置
    screenId: 0,// 仅Android,屏幕方向 默认0,0-竖屏,1-横屏
    previewPx: '720',// 仅Android,预览分辨率 480,720(默认),1080,2k,4k
    picturePx: '1080',// 仅Android,拍照分辨率 480,720,1080(默认),2k,4k
}, (res) => {
    this.list = res.data;
})

注意:

1、recognizeMillisecond 小于500将考验硬件性能,非必要不要设置

2、cameraId 推荐0,因为大部分前置摄像头分辨率不高

3、screenId 推荐0,因为这是兼容某些横屏的安卓设备,如学习机、模拟器等,效果也未经较多设备测试,非必要不要设置

4、previewPx 指手机上回显摄像头画面的清晰度。推荐 720、1080

5、picturePx 指是点击拍照后照片的清晰度。推荐 1080、2k、4k

返回结果 res

{
    code: 'success',
    data: ['filepath1', 'filepath2', ... ],
}

获取的图片地址可直接用image展示

<image v-for="(item, index) in list" :key="index" :src="item" mode="aspectFill" />

FAQ:

1、【Android】为什么手机对着物体看起来那么模糊?

答:可以点击一下屏幕,手动触发聚焦。因为打开摄像头的默认自动聚焦并不是目标物体或最好的效果

2、【Android】为什么最终矫正的图片那么模糊,字都看不清?但原生相机拍出来的照片是高清的

答:这里要达成一个共识,比如你的设备只支持720,即1280x720,当矫正里面的内容后是截取其中一部分的,那相应的像素也是不如720的,比如只有960x640、640x540这些。因此根据一些测试下来的结果,只有1080,即1080x1920,和以上的像素才会比较保证最终矫正图片画质

联系方式

wx:1-5-3-1094-3610(-去掉,不这样写会被和谐)
qq:505384310

DCloud的消息中心和uni-im经常收不到通知,导致联系不上

隐私、权限声明

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

- 摄像头

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

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

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