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

【HarmonyOS】一键扫码功能

【HarmonyOS】一键扫码功能

前言

鸿蒙在api10之后,对系统api的基础上,封装了较为复杂功能的开发工具包,统一称之为Kit。这些Kit根据功能定义的不同,划分为不同的种类Kit。如下图所示:
在这里插入图片描述
其实可以理解为集成在系统中的SDK。

这些Kit为我们应用开发提升了极大地效率。很多简单的功能,如果不需要太深的定制化需求,直接调用kit提供的API就可以实现,在android或者ios上需要很多代码才能实现的功能效果。

扫码Kit

在这里插入图片描述
鸿蒙提供了扫码Kit, ScanKit。它有两种集成方式,定制化的自定义扫码 和 界面风格与系统一致的一键扫码。

今天为大家讲解一键扫码的使用。

使用一键扫码,不需要单独申请相机权限,因为会直接跳转到系统内置的扫码界面。扫码结果通过回调,应用在回调中处理扫码解析的值。该调用是鸿蒙系统内安全访问级别。会在扫码界面上提示用户。

目前一键扫码的功能已经完全可以满足扫码相关的需求。例如手电筒,设备设备光暗识别。扫码动画。跳转相册选择二维码识别。

并且除了二维码,也支持条码的识别,功能十分强大。并且集成方式异常简单,不超过十行代码即可实现扫码功能。

当然二维码数据解析的处理,需要三方应用根据自己的业务进行处理。

DEMO效果图:
在这里插入图片描述

代码示例:

import { scanBarcode, scanCore } from '@kit.ScanKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { promptAction } from '@kit.ArkUI';

struct Index {private TAG: string = "Index";private onToEasyScan = () => {let options: scanBarcode.ScanOptions = {scanTypes: [scanCore.ScanType.ALL],enableMultiMode: true,enableAlbum: true};scanBarcode.startScanForResult(getContext(this), options).then((result: scanBarcode.ScanResult) => {// 扫码解析成功,二维码数据console.info(this.TAG, " result: " + JSON.stringify(result));promptAction.showToast({message: result.originalValue});}).catch((error: BusinessError) => {// 扫码解析失败console.info(this.TAG, " error: " + JSON.stringify(error));});}build() {RelativeContainer() {Text("跳转一键扫码").id('HelloWorld').fontSize(50).fontWeight(FontWeight.Bold).alignRules({center: { anchor: '__container__', align: VerticalAlign.Center },middle: { anchor: '__container__', align: HorizontalAlign.Center }}).onClick(this.onToEasyScan)}.height('100%').width('100%')}
}
http://www.lryc.cn/news/430927.html

相关文章:

  • Spring Boot应用中集成与使用多数据源
  • 探索 JavaScript 中的 instanceof 关键字
  • Python爬虫02
  • HTTP/3
  • MySQL 字符串操作详解和案例示范
  • 全双工语音交互
  • nginx中如何设置gzip
  • 借老系统重构机会我写了个groovy规则引擎
  • C#利用ffmpeg借助NVIDIA GPU实现实时RTSP硬解码+硬编码录制MP4
  • 第4章 汇编语言和汇编软件
  • 网络安全在2024好入行吗?
  • C++练习
  • 3. GIS后端工程师岗位职责、技术要求和常见面试题
  • Linux学习笔记(4)----Debian压力测试方法
  • xml详解
  • C140 杨辉三角
  • C++字符串操作中的陷阱
  • 最值求解 | 管理类联考数学专项
  • C++_继承详解
  • 区块链开发解决方案有哪些
  • Express与SQLite集成教程:轻松实现数据库操作
  • Transforms的常见用法
  • js 创建 React 项目
  • WPF 中常用 `Transform` 类的介绍、使用示例和适用场景
  • ElasticSearch-DSL
  • Learn ComputeShader 07 Post Processing
  • 初始QT!
  • 全国大学生数据建模比赛——深度学习
  • Qt技巧(二)-滑动界面,轮询控件,循环操作控件
  • 003——单链表