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
          })
        })
    })
相关推荐
Lanren的编程日记32 分钟前
Flutter 鸿蒙应用智能推荐功能实战:协同过滤+混合推荐算法,打造个性化内容体验
flutter·华为·harmonyos·推荐算法
小成Coder8 小时前
【Jack实战】如何用防窥保护给 HarmonyOS 应用敏感页面加一层系统蒙层
华为·harmonyos
jiejiejiejie_11 小时前
Flutter for OpenHarmony 视频播放与本地身份验证萌系实战总结
flutter·华为·音视频·harmonyos
liulian091611 小时前
【Flutter for OpenHarmony 第三方库】Flutter for OpenHarmony 第三方社交登录功能适配与实现指南
flutter·华为·学习方法·harmonyos
条tiao条12 小时前
鸿蒙 ArkTS 实战全解:从基础布局到完整页面,核心组件与样式一篇通
华为·harmonyos
liulian091612 小时前
【Flutter for OpenHarmony第三方库】Flutter for OpenHarmony 骨架屏实现与用户加载体验优化指南
flutter·华为·学习方法·harmonyos
Lanren的编程日记13 小时前
Flutter 鸿蒙应用无障碍功能实战:语义化标签+屏幕阅读器+键盘导航,全方位提升应用可用性
flutter·华为·计算机外设·harmonyos
小白学鸿蒙13 小时前
鸿蒙APP开发:SDK 兼容版本与目标版本如何选择
华为·harmonyos
Hello__777713 小时前
开源鸿蒙 Flutter 实战|关于页面完善全流程实现
flutter·开源·harmonyos
HwJack2014 小时前
HarmonyOS APP开发之玩透 ChannelConfig 的声道映射
华为·harmonyos