ymx-baidu-ocr
    正在准备搜索索引...

    接口 YmxBaiduOcr

    百度文字识别(百度智能云 OCR)

    基于百度 OCR HarmonyOS SDK 封装,支持在线 API 鉴权、带 UI 相机扫描识别与无 UI 直接图片识别。

    • 支持身份证、银行卡、营业执照、护照、行驶证、驾驶证、通用文字、票据发票、二维码等 40+ 识别类型
    • 识别前必须先调用 initSdk 完成初始化(需在用户同意隐私协议后调用)
    • 相机权限需在应用 module.json5 中声明(ohos.permission.CAMERA,必须包含 reason 字段); 调用扫描识别时插件会自动申请相机权限,用户拒绝授权会返回错误码 PERMISSION_DENIED
    • 相关文档:
    const ocr = ymx.requirePlugin('ymx-baidu-ocr') as YmxBaiduOcr;

    // 初始化 SDK(使用服务端下发的 access_token)
    await ocr.initSdk({
    accessToken: 'your_access_token',
    // 身份证自动采集质量检测(可选)
    // licenseKey: 'your_license_key'
    });

    // 通用文字识别(拉起相机拍照识别,支持相册选图)
    const res = await ocr.generalBasic({
    hideAlbum: false,
    detectDirection: true,
    returnImage: true
    });
    console.log('识别结果:', res.json);
    console.log('采集图片 base64:', res.image);

    // 身份证 - 正面(自动采集,检测到身份证自动拍照)
    const idCard = await ocr.idCardFrontAuto({
    detectRisk: true,
    detectPhoto: true
    });

    // 银行卡识别
    const bankCard = await ocr.bankCard();

    // iOCR 自定义模板识别
    const custom = await ocr.custom({
    templateSign: 'your_template_sign',
    classifierId: 0
    });

    // 通用扫描识别(SDK 支持的全部类型)
    const vin = await ocr.scan({
    type: 'vin_code'
    });

    // 直接图片识别(无 UI,传入本地图片路径)
    const direct = await ocr.recognize({
    type: 'general_basic',
    imagePath: '/data/storage/el2/base/haps/entry/files/ocr.jpg',
    params: {
    detect_direction: true
    }
    });

    // 识别完成释放 SDK 资源
    await ocr.release();
    interface YmxBaiduOcr {
        id: string;
        version: string;
        accurate(data?: GeneralLocationScanData): Promise<ScanResult>;
        accurateBasic(data?: GeneralScanData): Promise<ScanResult>;
        bankCard(data?: ScanData): Promise<ScanResult>;
        businessCard(data?: CommonScanData): Promise<ScanResult>;
        businessLicense(data?: CommonScanData): Promise<ScanResult>;
        custom(data: CustomData): Promise<ScanResult>;
        drivingLicense(data?: CommonScanData): Promise<ScanResult>;
        general(data?: GeneralLocationScanData): Promise<ScanResult>;
        generalBasic(data?: GeneralScanData): Promise<ScanResult>;
        generalEnhanced(data?: GeneralScanData): Promise<ScanResult>;
        handWriting(data?: CommonScanData): Promise<ScanResult>;
        hkMacauTwCard(data: HkMacauTwCardData): Promise<ScanResult>;
        idCardBack(data?: IdCardScanData): Promise<ScanResult>;
        idCardBackAuto(data?: IdCardScanData): Promise<ScanResult>;
        idCardFront(data?: IdCardScanData): Promise<ScanResult>;
        idCardFrontAuto(data?: IdCardScanData): Promise<ScanResult>;
        initSdk(data: InitSdkData): Promise<InitResult>;
        licensePlate(data?: CommonScanData): Promise<ScanResult>;
        lottery(data?: CommonScanData): Promise<ScanResult>;
        numbers(data?: CommonScanData): Promise<ScanResult>;
        passport(data?: CommonScanData): Promise<ScanResult>;
        qrcode(data?: CommonScanData): Promise<ScanResult>;
        receipt(data?: CommonScanData): Promise<ScanResult>;
        recognize(data: RecognizeData): Promise<RecognizeResult>;
        release(): Promise<void>;
        removeListener(): Promise<void>;
        scan(data: ScanRequestData): Promise<ScanResult>;
        setListener(
            listener: (eventName: string, data: any) => void,
        ): Promise<void>;
        vatInvoice(data?: CommonScanData): Promise<ScanResult>;
        vehicleLicense(data?: CommonScanData): Promise<ScanResult>;
        webImage(data?: GeneralScanData): Promise<ScanResult>;
    }

    层级

    • JsApiBase
      • YmxBaiduOcr
    索引

    属性

    id: string

    获取插件 ID

    version: string

    获取插件版本,如 1.2.3

    方法

    • 通用文字识别 - 高精度版(含位置信息)

      拉起相机拍照后识别,识别精度高于 general,结果包含文字坐标位置 (words_result 数组的 location 字段,开启 vertexesLocation 时返回 vertexes_location)。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 通用文字识别 - 高精度版(基础版,无位置信息)

      拉起相机拍照后识别,识别精度高于 generalBasic。 结果 JSON 的 words_result 数组包含识别文本(words 字段)。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 银行卡识别

      拉起相机拍照识别银行卡卡号、发卡行及卡片类型(借记卡/信用卡)。 结果 JSON 包含 bank_card_numberbank_namebank_card_type 等字段。

      参数

      • 可选data: ScanData

        通用识别参数(可选)

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 名片识别

      拉起相机拍照识别名片上的姓名、电话、公司、职位等字段。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 营业执照识别

      拉起相机拍照识别营业执照的注册号、有效期、法人姓名、地址、名称等关键字段。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • iOCR 自定义模板文字识别

      拉起相机拍照后按自定义模板识别,模板在百度智能云 iOCR 控制台创建。

      参数

      • data: CustomData

        自定义模板识别参数(templateSign 必填)

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

      const res = await ocr.custom({
      templateSign: 'your_template_sign',
      classifierId: 0
      });
    • 驾驶证识别

      拉起相机拍照识别驾驶证所有关键字段(证号、姓名、性别、准驾车型、有效期等)。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 通用文字识别(含位置信息)

      拉起相机拍照后识别,识别结果包含每个文字的坐标位置 (words_result 数组的 location 字段,开启 vertexesLocation 时返回 vertexes_location)。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 通用文字识别(基础版,无位置信息)

      拉起相机拍照后识别,识别结果中仅包含识别文本,不含文字位置信息。 结果 JSON 的 words_result 数组包含识别文本(words 字段)。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 通用文字识别(含生僻字版)

      拉起相机拍照后识别,对生僻字、多语言等复杂场景识别效果更好。 结果 JSON 的 words_result 数组包含识别文本(words 字段)。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 手写文字识别

      拉起相机拍照识别手写文字内容。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 港澳台证件识别

      拉起相机拍照识别港澳通行证、台湾通行证、台胞证、返乡证等出入境许可证件。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

      // 识别港澳通行证正面
      const res = await ocr.hkMacauTwCard({
      exitentrypermitType: 'hk_mc_passport_front'
      });
    • 身份证 - 背面识别(手动拍照)

      拉起相机手动拍照识别身份证背面(国徽面)各字段:签发机关、签发日期、失效日期。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON,words_result 包含各字段识别结果)

    • 身份证 - 背面识别(自动采集)

      相机检测到身份证背面后自动拍照识别,无需用户点按拍照按钮; 自动采集依赖本地质量检测模型与 License 文件(initSdk 中配置), License 不可用时自动退回手动拍照。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON,words_result 包含各字段识别结果)

    • 身份证 - 正面识别(手动拍照)

      拉起相机手动拍照识别身份证正面(头像面)各字段:姓名、民族、性别、出生日期、住址、身份证号码。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON,words_result 包含各字段识别结果)

    • 身份证 - 正面识别(自动采集)

      相机检测到身份证正面后自动拍照识别,无需用户点按拍照按钮; 自动采集依赖本地质量检测模型与 License 文件(initSdk 中配置), License 不可用时自动退回手动拍照。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON,words_result 包含各字段识别结果)

    • 初始化 OCR SDK

      注册在线识别能力并完成鉴权预校验,应用生命周期内建议只初始化一次; 重复调用会先释放旧实例再重新初始化。 access_token 的获取方式参考 获取 access_token

      参数

      返回 Promise<InitResult>

      初始化结果(支持识别的类型列表与 SDK 版本号)

      const res = await ocr.initSdk({
      accessToken: 'your_access_token'
      });
      console.log('支持类型:', res.supportedTypes);
    • 车牌识别

      拉起相机拍照识别车牌号、车牌颜色。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 彩票识别

      拉起相机拍照识别彩票关键字段。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 数字识别

      拉起相机拍照识别图片中的数字。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 护照识别

      拉起相机拍照识别中国大陆居民护照资料页(姓名、性别、国籍、护照号、有效期等)。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 二维码识别

      拉起相机拍照识别图片中的二维码/条形码内容。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 通用票据识别

      拉起相机拍照识别各类票据的关键字段。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 直接图片识别(无 UI)

      不拉起相机采集页,直接对传入的图片进行识别, 适用于自定义相机、批量识别、服务端图片下发等场景。

      参数

      • data: RecognizeData

        直接识别请求(type 与图片来源必填)

      返回 Promise<RecognizeResult>

      识别结果(服务端原始 JSON)

      const res = await ocr.recognize({
      type: 'id_card.front',
      imagePath: '/data/storage/el2/base/haps/entry/files/idcard.jpg',
      params: {
      detect_direction: true,
      detect_risk: true
      }
      });
    • 释放 OCR SDK 资源

      关闭相机、停止后台任务、断开网络连接并清理内部状态; 释放后需重新调用 initSdk 才能再次使用。 应用退出(Ability 销毁)时插件会自动释放,一般无需手动调用。

      返回 Promise<void>

      await ocr.release();
      
    • 移除监听器

      返回 Promise<void>

    • 通用扫描识别(带 UI)

      拉起相机拍照识别任意 SDK 支持的识别类型,覆盖未提供专用方法的扩展类型 (社保卡、户口本、结婚证、VIN 码、快递面单等)。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

      // 识别 VIN 码
      const res = await ocr.scan({ type: 'vin_code' });
      // 识别港澳台证件
      const res2 = await ocr.scan({
      type: 'hk_macau_tw_card',
      extraParams: { exitentrypermit_type: 'hk_mc_passport_front' }
      });
    • 设置监听器,接收 eventName 事件名称,data 事件数据

      注意: 此接口为覆盖操作,仅保留最后一个监听器,最后的 listener 才能收到事件通知。

      参数

      • listener: (eventName: string, data: any) => void

      返回 Promise<void>

    • 增值税发票识别

      拉起相机拍照识别增值税发票关键字段(发票代码、发票号码、开票日期、金额等)。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 行驶证识别

      拉起相机拍照识别行驶证正副页所有关键字段(号牌号码、车辆类型、所有人、使用性质等)。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)

    • 网络图片文字识别

      拉起相机拍照后识别,针对网络图片进行专项优化。 结果 JSON 的 words_result 数组包含识别文本(words 字段)。

      参数

      返回 Promise<ScanResult>

      识别结果(服务端原始 JSON)