> 技术文档 > 鸿蒙 Next 扫码功能开发攻略_mlbarcodescanner 鸿蒙next

鸿蒙 Next 扫码功能开发攻略_mlbarcodescanner 鸿蒙next


最近在做鸿蒙应用开发,业务中需要实现扫码功能,踩了不少坑,也积累了一些经验,今天就来和大家分享一下鸿蒙 Next 应用扫码功能的开发全流程,从环境搭建到代码实现,再到技术思考和拓展,希望能给正在做鸿蒙开发的小伙伴一些帮助。

一、鸿蒙扫码能力概述

在开始开发之前,先了解一下鸿蒙系统提供的扫码能力。官方提供了scanBarcode模块,它适用于 Phone 和 Tablet 设备,起始版本为 4.0.0 (10) 。
这个模块主要通过startScanForResult接口来实现扫码功能,同时还提供了丰富的参数配置和结果返回类型,方便我们根据业务需求进行定制化开发。

在使用之前,需要通过import { scanBarcode } from ‘@kit.ScanKit’;导入扫码模块。这里涉及到几个关键类型定义:

  • ScanResult:扫码结果,包含码类型scanType、识别内容originalValue,从 4.1.0 (11) 版本起还可能包含码识别位置信息scanCodeRect以及从 5.0.0 (12) 版本起 QR Code 四个角点位置信息cornerPoints。
  • ScanCodeRect:表示码的位置信息,包含外接矩形左上角和右下角坐标。默认扫码接口不返回该信息。
  • Point:用于表示点坐标,坐标系以左上角为 {0,0}。
  • ScanOptions:扫码、识码参数,可设置扫码类型scanTypes(默认扫码 ALL 全部码类型)、是否开启多码识别enableMultiMode(默认 false 单码识别)、是否开启相册扫码enableAlbum(默认 true,且相册识码只支持单码识别)。

二、开发环境准备

1 开发工具安装

首先,确保已经安装好鸿蒙开发套件 DevEco Studio。如果还没安装,可以去华为开发者官网下载对应系统版本的安装包,按照安装向导一步步完成安装。安装完成后,打开 DevEco Studio,检查 SDK 是否已经下载完整,如果没有,在设置中选择合适的 SDK 版本进行下载。

2 设备连接与调试

开发过程中,需要真机调试来确保功能正常。用数据线将手机连接到电脑,打开手机的开发者模式(一般在设置 - 关于手机中连续点击版本号开启),然后在设置 - 系统和更新 - 开发人员选项中开启 USB 调试和鸿蒙设备连接。在 DevEco Studio 中,点击工具栏的运行按钮,选择连接的手机设备,就可以将应用安装到手机上进行调试了。

三、扫码功能代码实现

1 添加权限

在config.json文件中添加扫码所需的权限,因为扫码需要使用相机,所以要添加相机权限。权限声明如下:
{
“reqPermissions”: [
{
“name”: “ohos.permission.CAMERA”
}
]
}

这里要注意,如果没有添加权限,应用在调用扫码功能时会报错,无法正常使用相机。

2 编写扫码代码

1 使用 Promise 方式获取扫码结果
import {  scanBarcode, scanCore } from \'@kit.ScanKit\';import {  hilog } from \'@kit.PerformanceAnalysisKit\';import {  BusinessError } from \'@kit.BasicServicesKit\';// 定义扫码参数options// 设置扫码类型为全部码类型,开启多码识别和相册扫码功能let options: scanBarcode.ScanOptions = {  scanTypes: [scanCore.ScanType.ALL], enableMultiMode: true, enableAlbum: