[HarmonyOS Next示例代码]统一扫码

打印 上一主题 下一主题

主题 1052|帖子 1052|积分 3156

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
HarmonyOS next 示例代码全集

ScanKit_SampleCode_Clientdemo_ArkTS: 本示例重要展示统一扫码服务(Scan Kit)的识码、扫码和天生码三大模块功能,包罗图片识码本领、默认界面扫码本领、自界说界面扫码本领和码图天生本领。
统一扫码

介绍

本示例展示了使用统一扫码提供的“扫码直达”服务、默认界面扫码本领、自界说界面扫码本领、图像识码本领、码图天生本领。
需要使用统一扫码服务接口 import { scanCore, scanBarcode, customScan, detectBarcode, generateBarcode } from ' @kit.ScanKit';
效果预览

应用首页扫码直达

  

  应用首页默认界面扫码扫码结果单码扫码结果多码默认界面扫码结果

  

  

  

  

  应用首页自界说界面扫码扫码结果单码扫码结果多码自界说界面扫码结果

  

  

  

  

  应用首页自界说界面扫码-YUV

  

  应用首页自界说界面扫码本领-推荐样例扫码结果单码扫码结果多码推荐样例扫码结果

  

  

  

  

  应用首页辨认本地图片辨认本地图片结果单码辨认本地图片结果多码辨认本地图片结果辨认图像数据

  

  

  

  

  

  应用首页码图天生界面码图天生结果

  

  

  使用阐明:

  • 在手机的主屏幕,点击“统一扫码示例”,启动应用,在主界面可见“扫码直达”、“默认界面扫码本领”、“自界说界面扫码本领”、“图像识码本领”、“码图天生本领”按钮。
  • 点击“扫码直达”按钮,进入二级界面,点击“扫码直达接入流程”介绍了开发流程和步调阐明。
  • 点击“默认界面扫码本领”按钮,进入二级界面,点击“默认界面扫码本领”按钮,拉起默认扫码页面,扫描码图,返回结果。
  • 点击“自界说界面扫码本领”按钮,进入二级界面,再次点击“自界说界面扫码本领”按钮,通过promise调用方式拉起自界说扫码界面,扫描码图,返回结果。
  • 点击“自界说界面扫码本领”按钮,进入二级界面,点击“自界说界面扫码本领-YUV”按钮,通过callback调用方式拉起自界说扫码界面,扫描码图,及时显示码图位置。
  • 点击“自界说界面扫码本领”按钮,进入二级界面,点击“自界说界面扫码本领-推荐样例”按钮,通过推荐方式构建自界说扫码界面,扫描码图,返回结果。
  • 点击“图像识码本领”按钮,进入二级界面,点击“辨认本地图片”按钮,拉起picker从图库中选择图片,举行图像识码,返回结果。
  • 点击“图像识码本领”按钮,进入二级界面,点击“辨认图像数据”按钮,返回示例结果。
  • 点击“码图天生本领”按钮,进入二级界面,调用码图天生接口,天生不同类型的码图。
工程目录

├─entry/src/main/ets // 代码区
│ ├─common
│ │ ├─CommonComponents.ets // 公共组件
│ │ ├─CommonTipsDialog.ts // 公共提示弹窗
│ │ ├─GlobalThisUtil.ts // globalThis封装类
│ │ ├─Logger.ts // 日志打印方法
│ │ ├─StatusBar.ets // 状态栏组件
│ │ ├─Utils.ts // 公共方法
│ ├─entryability
│ │ └─EntryAbility.ets // 步伐入口类
│ ├─pages
│ │ ├─access // 扫码直达
│ │ │ ├─ScanAccess.ets // 扫码直达页连接成功页面
│ │ │ ├─ScanDetail.ets // 扫码直达详情页面
│ │ ├─customScan //自界说扫码
│ │ │ ├─CommonCodeLayout.ets //蓝点组件
│ │ │ ├─CustomPage.ets // 自界说扫码按钮入口页面
│ │ │ ├─CustomScan.ets // 自界说扫码页面
│ │ │ ├─CustomYuv.ets // 自界说扫码YUV页面
│ │ │ ├─PermissionsUtil.ets // 相机授权类
│ │ ├─customScanDefault // 自界说界面扫码本领-推荐样例
│ │ │ ├─constants // 常量
│ │ │ │ ├─BreakpointConstants.ets // 断点常量
│ │ │ │ ├─CommonConstants.ts // 公共常量
│ │ │ ├─model
│ │ │ │ ├─BreakpointType.ets // 断点
│ │ │ │ ├─CommonEventManager.ets // 公共事件管理
│ │ │ │ ├─OpenPhoto.ets // 图库
│ │ │ │ ├─PromptTone.ts // 提示音
│ │ │ │ ├─ScanService.ets // 自界说扫码
│ │ │ │ ├─ScanSize.ets // 扫面界面尺寸
│ │ │ ├─pages // 页面
│ │ │ │ ├─ScanPage.ets // 扫码页面
│ │ │ ├─view // 组件
│ │ │ │ ├─CommonCodeLayout.ets // 蓝点组件
│ │ │ │ ├─IconPress.ets // 图片按压效果组件
│ │ │ │ ├─MaskLayer.ets // 遮罩
│ │ │ │ ├─PickerDialog.ets // 模态框组件
│ │ │ │ ├─ScanBottom.ets // 底部组件
│ │ │ │ ├─ScanLine.ets // 扫描线组件
│ │ │ │ ├─ScanLoading.ets // 加载组件
│ │ │ │ ├─ScanTitle.ets // 标题组件
│ │ │ │ ├─ScanTopTool.ets // 顶部组件
│ │ │ │ ├─ScanXComponent.ets // XComponent组件
│ │ ├─defaultScan //默认界面扫码
│ │ │ ├─DefaultScan.ets //默认界面扫码
│ │ ├─detectBarcode // 图像识码
│ │ │ ├─CommonCodeLayout.ets // 蓝点组件
│ │ │ ├─DecodeBarcode.ets // 图像识码按钮入口页面
│ │ │ ├─DecodeCameraYuv.ets // 辨认图像数据页面
│ │ ├─generateBarcode // 码图天生
│ │ │ ├─CreateBarcode.ets // 码图天生页面
│ │ ├─resultPage // 扫码结果
│ │ │ ├─ResultPage.ets // 扫码结果页面
│ │ └─Index.ets // 统一扫码入口页面
└─entry/src/main/resources // 资源文件目录
具体实现

默认界面扫码:提供体系级体验同等的扫码界面,包罗相机预览流,相册扫码入口,暗光情况闪光灯开启提示,具备相机预授权,集成简朴,适用于通用扫码场景。 在import { scanCore, scanBarcode } from '@kit.ScanKit';界说了默认扫码服务接口API:


  • startScanForResult(context: common.Context, options?: ScanOptions): Promise<ScanResult>
  • startScanForResult(context: common.Context, options: ScanOptions, callback: AsyncCallback<ScanResult>): void
  • startScanForResult(context: common.Context, callback: AsyncCallback<ScanResult>): void
自界说界面扫码:提供扫码本领并支持在指定控件上渲染相机预览流,需要开发者实现扫码界面,申请相机权限,适用于对扫码界面有个性化定制的场景。 在import { customScan } from '@kit.ScanKit';界说了自界说扫码API:


  • init(options?: scanBarcode.ScanOptions): void
  • start(viewControl: ViewControl): Promise<Array<scanBarcode.ScanResult>>
  • stop(): Promise<void>
  • release(): Promise<void>
  • start(viewControl: ViewControl, callback: AsyncCallback<Array<scanBarcode.ScanResult>>, frameCallback?: AsyncCallback<ScanFrame>): void
  • getFlashLightStatus(): boolean
  • openFlashLight(): void
  • closeFlashLight(): void
  • setZoom(zoomValue : number): void
  • getZoom(): number
  • setFocusPoint(point: scanBarcode.Point): void
  • resetFocus(): void
  • rescan(): void
  • stop(callback: AsyncCallback<void>): void
  • release(callback: AsyncCallback<void>): void
  • on(type: 'lightingFlash', callback: AsyncCallback<boolean>): void
  • off(type: 'lightingFlash', callback?: AsyncCallback<boolean>): void
图像识码:对图库中的码图或图像数据举行扫描辨认。 在import { detectBarcode } from '@kit.ScanKit';界说了图像识码API:


  • decode(inputImage: InputImage, options?: scanBarcode.ScanOptions): Promise<Array<scanBarcode.ScanResult>>
  • decode(inputImage: InputImage, options: scanBarcode.ScanOptions, callback: AsyncCallback<Array< scanBarcode.ScanResult>>): void
  • decode(inputImage: InputImage, callback: AsyncCallback<Array<scanBarcode.ScanResult>>): void
  • decodeImage(image: ByteImage, options?: scanBarcode.ScanOptions): Promise<DetectResult>
码图天生:将字符串或字节数组转换为自界说格式的码图。 在import { generateBarcode } from '@kit.ScanKit';界说了码图天生API:


  • createBarcode(content: string, options: CreateOptions): Promise<image.PixelMap>
  • createBarcode(content: string, options: CreateOptions, callback: AsyncCallback<image.PixelMap>): void
  • createBarcode(content: ArrayBuffer, options: CreateOptions): Promise<image.PixelMap>
相关权限

自界说扫码功能获取相机权限: ohos.permission.CAMERA。
自界说扫码功能获取震惊权限: ohos.permission.VIBRATE。
依赖

依赖装备具备相性本领。
约束与限定


  • 本实例仅支持标准体系上运行,支持装备:华为手机、华为平板。
  • HarmonyOS体系:HarmonyOS NEXT Developer Beta2及以上。
  • DevEco Studio版本:DevEco Studio NEXT Developer Beta2及以上。
  • HarmonyOS SDK版本:HarmonyOS NEXT Developer Beta2 SDK及以上。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

郭卫东

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表