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

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')) {// 定义扫码参数optionslet 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})})})

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vue2的diff算法
  • Python数据分析案例60——扩展变量后的神经网络风速预测(tsfresh)
  • Fish Speech - 新的 TTS 解决方案
  • Golang | Leetcode Golang题解之第412题Fizz Buzz
  • Holynix: v1
  • 【C++】入门基础(上)
  • c++234继承
  • 【Git】Clone
  • Autosar BswM配置-手动建立Swc Port实现自定义模式切换
  • 【激活函数】Activation Function——在卷积神经网络中的激活函数是一个什么样的角色??
  • NullPointerException 是什么, 如何修复?
  • [产品管理-23]:NPDP新产品开发 - 21 - 产品创新中的市场调研 - 市场调研对创新产品开发的意义
  • C sharp 学习 笔记
  • Datawhale------Tiny-universe学习笔记——Qwen
  • 前端项目使用js将dom生成图片、PDF
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • github指令
  • Hibernate【inverse和cascade属性】知识要点
  • Java方法详解
  • MySQL几个简单SQL的优化
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Redis字符串类型内部编码剖析
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 测试如何在敏捷团队中工作?
  • 检测对象或数组
  • 浅谈Golang中select的用法
  • 三栏布局总结
  • 小程序测试方案初探
  • 正则与JS中的正则
  • FaaS 的简单实践
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • #DBA杂记1
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (Java)【深基9.例1】选举学生会
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (三)SvelteKit教程:layout 文件
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .bashrc在哪里,alias妙用
  • .form文件_SSM框架文件上传篇
  • .NET DataGridView数据绑定说明
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET 依赖注入和配置系统
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)
  • .Net6使用WebSocket与前端进行通信
  • .NetCore 如何动态路由
  • @EventListener注解使用说明
  • @RequestBody的使用
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [1181]linux两台服务器之间传输文件和文件夹
  • [Algorithm][动态规划][子序列问题][最长递增子序列][摆动序列]详细讲解