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
          })
        })
    })
相关推荐
摘星编程12 小时前
【成长纪实】HarmonyOS Next学习地图:新手避坑指南与核心知识点拆解
学习·华为·harmonyos·鸿蒙开发
文火冰糖的硅基工坊13 小时前
[人工智能-大模型-85]:大模型应用层 - AI/AR眼镜:华为智能眼镜、苹果智能眼镜、Google Glass智能眼镜的软硬件技术架构
人工智能·华为·ar
爱笑的眼睛1116 小时前
HarmonyOS生物识别认证深度解析:从指纹到人脸的安全实践
华为·harmonyos
流影ng18 小时前
【HarmonyOS】动画—转场动效
华为·harmonyos
cooldream200921 小时前
项目实战复盘:基于仓颉语言的鸿蒙智能导航助手(HarmonyNav)
华为·harmonyos·仓颉
爱笑的眼睛1121 小时前
HarmonyOS ScrollBar深度定制:超越系统默认的滚动体验
华为·harmonyos
爱笑的眼睛1121 小时前
HarmonyOS 文件管理Kit 的应用场景深度解析
华为·harmonyos
周倦岚21 小时前
【HarmonyOS】GC垃圾回收
harmonyos
HarmonyOS_SDK21 小时前
【FAQ】HarmonyOS SDK 闭源开放能力 — AppGallery Kit
harmonyos
SWUT胖虎21 小时前
ArkTS 自定义组件与 @Builder 区别总结
harmonyos·arkts·鸿蒙