HarmonyOS Next鸿蒙扫一扫功能实现

直接使用的是华为官方提供的api,封装成一个工具类方便调用。

TypeScript 复制代码
import { common } from '@kit.AbilityKit';
import { scanBarcode, scanCore } from '@kit.ScanKit';


export namespace ScanUtil {
  export async function startScan(context: common.Context) : Promise<string> {
    if (canIUse('SystemCapability.Multimedia.Scan.Core')) {
      // 定义扫码参数options
      let options: scanBarcode.ScanOptions = {
        scanTypes: [scanCore.ScanType.ALL],
        enableMultiMode: true,
        enableAlbum: true
      };

      if (canIUse('SystemCapability.Multimedia.Scan.ScanBarcode')) {
        let result: scanBarcode.ScanResult = await scanBarcode.startScanForResult(context, options)
        return result.originalValue
      }
    }
    throw new Error('该设备不支持扫码功能')
  }
}

使用方法:

TypeScript 复制代码
Button('打开扫一扫')
    .onClick(()=>{
      ScanUtil.startScan(getContext())
        .then((result)=>{
          //成功识别到二维码内容
          promptAction.showToast({
            message: `result:${result}`,
            duration: 3000
          })
        })
        .catch((error:BusinessError)=>{
          //一般是模拟器会跑到这里报异常
          promptAction.showToast({
            message: `error:${error}`,
            duration: 3000
          })
        })
    })
相关推荐
爱笑的眼睛113 小时前
HarmonyOS USB设备管理深度探索:从基础到高级应用
华为·harmonyos
爱笑的眼睛115 小时前
HarmonyOS文件压缩与解压缩API深度解析与实践
华为·harmonyos
柒儿吖8 小时前
Qt for HarmonyOS 水平进度条组件开发实战
开发语言·qt·harmonyos
xiaocao_102310 小时前
鸿蒙手机上有没有轻便好用的备忘录APP?
华为·智能手机·harmonyos
qq_3168377511 小时前
华为CCE k8s 使用nfs-subdir-external-provisioner 创建pvc时自动创建pv
windows·华为·kubernetes
程序员老刘15 小时前
4:2:1!老刘的三季度项目报告
flutter·harmonyos·客户端
深盾科技15 小时前
鸿蒙应用构建体系深度解析:ABC、HAP、HAR、HSP与APP的技术全貌
华为·harmonyos
大师兄666815 小时前
HarmonyOS新闻卡片组件开发实战:自定义组件与List渲染深度解析
移动开发·harmonyos·自定义组件·组件通信·分类筛选·新闻卡片·list渲染
一名机电研究生16 小时前
华为、阿里巴巴、字节跳动 100+ Linux面试问题总结(一)
linux·华为·面试
晴殇i20 小时前
关于前端基础快速跨入鸿蒙HarmonyOS开发
前端·harmonyos