更新记录

1.0.1(2025-07-11)

  • 修改文档,新增uniapp示例代码

1.0.0(2025-07-11)

  • 新版发布

平台兼容性

uni-app

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - 5.0 12 ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
× × × × × × - × × × ×

uni-app x

Chrome Safari Android iOS 鸿蒙 微信小程序
- - 5.0 12 × ×

百度OCR识别插件

开发文档

UTS 语法 UTS API插件 UTS uni-app兼容模式组件 UTS 标准模式组件 Hello UTS

特别提醒

  • 购买本插件前,请先试用、并充分自测后再购买,购买后无法退款;
  • 如有使用上的疑问、bug,可以进交流群联系作者;
  • 结合文档和示例代码集成使用;
  • 试用必须先打基座、试用必须先打基座、试用必须先打基座重要事情说三遍;
  • 本插件支持uniapp/uniapp-x项目,支持vue2/vue3,支持iOS、Android
  • 本插件默认您已在百度文字识别创建了应用并已下载了授权文件(License文件)或API Key(简称AK),Secret Key(简称SK),注意这里申请这些文件的包名和签名证书必须和后续项目打包时一致,iOS则Bubdle ID必须与后续打包的一直,否则会导致授权失败。
  • 插件集成后必须打自定义基座才有效

插件功能介绍

  1. 本插件基于百度OCR文字识别SDK封装的uts插件,支持iOS、Android。uniapp/uniapp-x,vue2/vue3。
  2. 支持身份证、身份证自动识别、文字、驾驶证、行驶证、车牌、二维码、VIN码、试卷分析、名片、手写文字。。。常规场景识别,更多场景见下表识别类型。

插件使用

  • 插件首页试用选择需要集成的项目导入插件
  • 将授权文件放入对应位置(如果不是通过授权文件鉴权则可跳过这步),iOS:放在uni_modules/ly-uts-bdocr/utssdk/app-ios/Resources文件夹下名称必须为aip.license。Android:放在uni_modules/ly-uts-bdocr/utssdk/app-android/assets/文件夹下名称必须为aip.license
  • 导入插件
  • 打自定义基座调试
<script>
//插件首页点击试用,选择试用项目。在试用项目<script>中导入插件。
import * as BDOcr from '../../uni_modules/ly-uts-bdocr'
...
</script>

鉴权

授权res.code鉴权状态码 10000表示鉴权成功,其他状态码可参照百度文字识别官网说明。

//uniapp
BDOcr.auth({
     type:"LicenseFile",//授权类型
     authHandler: (res) => { //授权回调
console.log(`状态码:${res.code}--token:${res.token}---描述信息:${res.meg}`);
     }
})

//uniapp-x
BDOcr.auth({
    type: "LicenseFile",
    authHandler: (res) => {
        console.log(`状态码:${res.code}--token:${res.token}---描述信息:${res.meg}`);
    }
} as BDOcr.AuthOptions)

授权参数说明:

参数 值类型 说明
type string 鉴权类型,授权文件鉴权:LicenseFile ,AKSK授权:AK_SK
AK string 百度文字识别创建应用后生成的Api key,授权文件鉴权可不传
SK string 百度文字识别创建应用后生成的Secret key,授权文件鉴权可不传
authHandler function 鉴权回调,仅Android有效

uniapp-x调用识别

BDOcr.recognition({
                    ocrType: "bankCard",
                    recognitionHandler: (res) => {
                        if (res["code"] == 200) {
                            let content = res.value;
                            let recognitionImgPath = res.recognitionImgPath
                            this.imgPath = `file://${recognitionImgPath}`
                            this.recognitionValue = content;
                            let data = JSON.parse(content);
                            console.log(data)
                        } else {
                            console.log(res)
                            let content = res.meg;
                            this.recognitionValue = content;
                        }
                        uni.hideLoading()
                    }
                } as BDOcr.RecognitionOptions)

uniapp调用识别

BDOcr.recognition({
                    ocrType: "localIdCardFront",
                    recognitionHandler: (res) => {
                        console.log(res)
                        if (res.code == 200) {
                            let content = res.value;
                            let recognitionImgPath = res.recognitionImgPath

                            if (recognitionImgPath != null) {
                                this.imgPath = `file://${recognitionImgPath}`
                            }
                            this.recognitionValue = content;

                            let data = JSON.parse(content);
                            console.log(data)
                        } else {
                            console.log(res)
                            let content = res.meg
                            this.recognitionValue = content;
                        }
                        uni.hideLoading()
                    }
                })

识别参数说明:

参数 值类型 说明
ocrType string 识别类型,详情见下表ocrType 说明
recognitionHandler function 识别回调返回的是Map类型数据

ocrType说明:

参数 说明
idCardFront 身份证正面
idCardBack 身份证反面
localIdCardFront 身份证正面扫描(自动识别)
localIdCardBack 身份证反面扫描(自动识别)
textBasic 通用文字识别
bankCard 银行卡
text 通用文字识别含位置信息
textAccurateBasic 通用文字识别 高精度
textAccurate 通用文字识别 高精度 含位置信息
textEnhanced 通用文字识别 含生僻字
webImage 网络图片文字识别
drivingLicense 驾驶证
vehicleLicense 行驶证
plateNumber 车牌
businessLicense 营业执照
receipt 通用票据
valueAddedTax 增值税发票
taxiReceipt 出租车票
vinCode VIN码
trainTicket 火车票
numbers 数字识别
qrCode 二维码
household 户口
passport 护照
writtenText 手写文字
exampleDoc 试卷分析
weightNote 磅单
taxiItinerary 网约车行程单
medicalDetail 医疗费用
vehicleInvoice 机动车销售发票
invoice 通用机打发票
businessCard 名片(仅Android有效)
vehicleCertificate 车辆合格证(仅iOS有效)

清除图片

//uniapp
BDOcr.removePicture({
    path: this.imgPath,//图片路径
    resultBackcall: (res) => {
        if (res) {
            uni.showToast({
                title: '删除成功',
                icon: "none"
            })
        } else {
            uni.showToast({
                title: '删除失败',
                icon: "none"
            })
        }
    }
} as BDOcr.DeleteFileParams)
//uniapp-x
BDOcr.removePicture({
    path: this.imgPath,
    resultBackcall: (res) => {
        if (res) {
            uni.showToast({
                title: '删除成功',
                icon: "none"
            })
        } else {
            uni.showToast({
                title: '删除失败',
                icon: "none"
            })
        }
    }
} as BDOcr.DeleteFileParams)

uniapp-x示例

<template>
    <view>
        <view class="text-area">
            <view class="item" @click="authFile">
                <text class="title">授权文件授权</text>
            </view>
            <view class="item" @click="akAuth">
                <text class="title">AK—SK授权</text>
            </view>
            <view class="item" @click="recognition">
                <text class="title">识别</text>
            </view>
            <view class="item" @click="deleteImage">
                <text class="title">删除图片</text>
            </view>
            <image :src="imgPath" mode="widthFix" style="background-color: beige;margin-top: 40rpx;"></image>
            <text class="recognition_text">{{recognitionValue}}</text>
        </view>
    </view>
</template>

<script>
    import * as BDOcr from '../../uni_modules/ly-uts-bdocr'
    export default {
        data() {
            return {
                title: 'Hello',
                imgPath: "",
                recognitionValue: ""
            }
        },
        onLoad() {

        },
        onShow() {
        },
        methods: {
            authFile() {
                BDOcr.auth({
                    type: "LicenseFile",
                    authHandler: (res) => {
                        console.log(`鉴权状态码:${res.code}----提示:${res.meg}`)
                    }
                } as BDOcr.AuthOptions)
            },
            akAuth() {
                BDOcr.auth({
                    type: "AK_SK",
                    AK: "fC2ttd4bvLW2Z7qI7PSeQfe2",
                    SK: "k3gm3z3AzKbf9kWDV8E57YeE4CpP9PSo",
                    authHandler: (res) => {
                        console.log(`鉴权状态码:${res.code}----提示:${res.meg}`)
                    }
                } as BDOcr.AuthOptions)
            },
            recognition() {
                // if (uni.getSystemInfoSync().platform === 'android') {
                //  uni.showLoading({
                //      title: "识别中。。。"
                //  })
                // }
                BDOcr.recognition({
                    ocrType: "bankCard",
                    recognitionHandler: (res) => {
                        if (res["code"] == 200) {
                            let content = res.value;
                            let recognitionImgPath = res.recognitionImgPath
                            this.imgPath = `file://${recognitionImgPath}`
                            this.recognitionValue = content;
                            let data = JSON.parse(content);
                            console.log(data)
                        } else {
                            console.log(res)
                            let content = res.meg;
                            this.recognitionValue = content;
                        }
                        uni.hideLoading()
                    }
                } as BDOcr.RecognitionOptions)
            },
            ///删除图片
            deleteImage() {
                BDOcr.removePicture({
                    path: this.imgPath,
                    resultBackcall: (res) => {
                        if (res) {
                            uni.showToast({
                                title: '删除成功',
                                icon: "none"
                            })
                        } else {
                            uni.showToast({
                                title: '删除失败',
                                icon: "none"
                            })
                        }
                    }
                } as BDOcr.DeleteFileParams)
            }
        }
    }
</script>

<style>
    .item {
        display: flex;
        align-items: center;
        justify-content: center;
        background-color: bisque;
        height: 88rpx;
        margin-top: 20rpx;
    }

    .title {
        font-size: 18px;
        color: #333;
        text-align: center;

    }

    .recognition_text {
        display: flex;
        width: 700rpx;
        margin-left: 25rpx;
        margin-top: 40rpx;
    }
</style>

uniapp示例代码

<template>
    <view>
        <view class="text-area">
            <view class="item" @click="authFile">
                <text class="title">授权文件授权</text>
            </view>
            <view class="item" @click="akAuth">
                <text class="title">AK—SK授权</text>
            </view>
            <view class="item" @click="recognition">
                <text class="title">识别</text>
            </view>
            <view class="item" @click="deleteImage">
                <text class="title">删除图片</text>
            </view>
            <image :src="imgPath" mode="widthFix" style="background-color: beige;margin-top: 40rpx;"></image>
            <text class="recognition_text">{{recognitionValue}}</text>
        </view>
    </view>
</template>

<script>
    import * as BDOcr from '../../uni_modules/ly-uts-bdocr'
    export default {
        data() {
            return {
                title: 'Hello',
                imgPath: "",
                recognitionValue: ""
            }
        },
        onLoad() {

        },
        onShow() {},
        methods: {
            authFile() {
                BDOcr.auth({
                    type: "LicenseFile",
                    authHandler: (res) => {
                        console.log(`状态码:${res.code}--token:${res.token}---描述信息:${res.meg}`);
                    }
                })
            },
            akAuth() {
                BDOcr.auth({
                    type: "AK_SK",
                    AK: "fC2tt111111I7PSeQfe2", //换成自己的Api key
                    SK: "k3gm3z2331252DV8E57YeE4CpP9PSo", //换成自己的SK
                    authHandler: (res) => {
                        console.log(`状态码:${res.code}--token:${res.token}---描述信息:${res.meg}`);
                    }
                })
            },
            recognition() {
                // if (uni.getSystemInfoSync().platform === 'android') {
                //  uni.showLoading({
                //      title: "识别中。。。"
                //  })
                // }
                BDOcr.recognition({
                    ocrType: "localIdCardFront",
                    recognitionHandler: (res) => {
                        console.log(res)
                        if (res.code == 200) {
                            let content = res.value;
                            let recognitionImgPath = res.recognitionImgPath

                            if (recognitionImgPath != null) {
                                this.imgPath = `file://${recognitionImgPath}`
                            }
                            this.recognitionValue = content;

                            let data = JSON.parse(content);
                            console.log(data)
                        } else {
                            console.log(res)
                            let content = res.meg
                            this.recognitionValue = content;
                        }
                        uni.hideLoading()
                    }
                })
            },
            ///删除图片
            deleteImage() {
                BDOcr.removePicture({
                    path: this.imgPath,
                    resultBackcall: (res) => {
                        if (res) {
                            uni.showToast({
                                title: '删除成功',
                                icon: "none"
                            })
                        } else {
                            uni.showToast({
                                title: '删除失败',
                                icon: "none"
                            })
                        }
                    }
                })
            }
        }
    }
</script>

<style>
    .item {
        display: flex;
        align-items: center;
        justify-content: center;
        background-color: bisque;
        height: 88rpx;
        margin-top: 20rpx;
    }

    .title {
        font-size: 18px;
        color: #333;
        text-align: center;

    }

    .recognition_text {
        display: flex;
        width: 700rpx;
        margin-left: 25rpx;
        margin-top: 40rpx;
        flex-wrap: wrap;
        overflow-wrap: anywhere;
    }
</style>

隐私、权限声明

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

相机、相册、文件存储

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

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

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

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