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
          })
        })
    })
相关推荐
Miguo94well15 分钟前
Flutter框架跨平台鸿蒙开发——科目一题目练习APP的开发流程
flutter·华为·harmonyos
funnycoffee1231 小时前
华为CE系列交换机,关闭密码即将过期提醒
服务器·华为·华为密码过期
数通工程师1 小时前
实操教程:华为防火墙HRP主备模式完整配置步骤
运维·服务器·网络·网络协议·tcp/ip·华为
相思难忘成疾1 小时前
华为HCIP实验-BGP路由协议的配置解析
网络·华为·智能路由器·hcip
SoraLuna2 小时前
KuiklyUI for OpenHarmony 实战 02:Kuikly 工程创建与鸿蒙运行(Mac)
macos·华为·harmonyos
wqwqweee2 小时前
Flutter for OpenHarmony 看书管理记录App实战:个人中心实现
开发语言·javascript·python·flutter·harmonyos
阿钱真强道2 小时前
05 thingsboard-4.3-ubuntu20-rk3588-部署
linux·运维·服务器·鸿蒙
[H*]2 小时前
Flutter框架跨平台鸿蒙开发——TextFormField基础组件详解
flutter·华为·harmonyos
知南x3 小时前
【华为昇腾DVPP/AIPP学习篇】(3) AIPP+DVPP的使用
学习·华为
BlackWolfSky3 小时前
鸿蒙中级课程笔记3—ArkUI进阶3—给应用添加交互(手势)
笔记·华为·交互·harmonyos