##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 前言 鸿蒙在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';
@Entry @Component 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%') } }