当前位置: 首页 > article >正文

HarmonyOS Next鸿蒙扫一扫功能实现

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

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('该设备不支持扫码功能')
  }
}

使用方法:

Button('打开扫一扫')
    .onClick(()=>{
      ScanUtil.startScan(getContext())
        .then((result)=>{
          //成功识别到二维码内容
          promptAction.showToast({
            message: `result:${result}`,
            duration: 3000
          })
        })
        .catch((error:BusinessError)=>{
          //一般是模拟器会跑到这里报异常
          promptAction.showToast({
            message: `error:${error}`,
            duration: 3000
          })
        })
    })


http://www.kler.cn/news/319104.html

相关文章:

  • Kubernetes监控、日志记录和运行时安全:CKS考试核心知识点实践
  • 【车联网安全】车端网络攻击及检测的框架/模型
  • 9月24日笔记
  • 探索未来的IT发展方向:技术与创新的融合
  • AI绘画+副业:让您的手机壁纸、微信头像都充满了个性,姓氏头像,情侣壁纸等
  • Chat2DB:AI驱动SQL编辑器,开启智能数据库管理新时代
  • Oracle查询(下)
  • 两张图讲透软件测试实验室认证技术体系与质量管理体系
  • Linux安装火狐游览器
  • python assert 断言用法
  • VuePress搭建文档网站/个人博客(详细配置)主题配置-侧边栏配置
  • Spring Boot 注解拦截器实现审计日志功能
  • Stable Diffusion 的 ControlNet 主要用途
  • 使用 Flask-Limiter 和 Nginx 实现接口访问次数限制
  • 美畅物联丨海康威视摄像机固件升级指南
  • msvcp140.dll丢失怎么办,总结6种解决msvcp140.dll丢失的方法
  • 代码随想录算法day40 | 动态规划算法part13 | 647. 回文子串,516.最长回文子序列
  • Android 模拟按键功能实现
  • 宠物智能听诊器宠物健康管理设备
  • Java中的位图和布隆过滤器(如果想知道Java中有关位图和布隆过滤器的知识点,那么只看这一篇就足够了!)
  • 分享6个icon在线生成网站,支持AI生成
  • 生信初学者教程(四):软件
  • C语言实现简单凯撒密码算法
  • springboot使用minio(8.5.11)
  • 某易易盾验证码逆向
  • vue3 选择字体的颜色,使用vue3-colorpicker来选择颜色
  • Spring Boot集成LiteFlow使用详解
  • 【可变模板参数】
  • DS18B20温度传感器模块
  • Day29笔记-Python操作pdfPython发送邮件