本文介绍如何在 HarmonyOS NEXT 中使用相关 SDK。

权限添加

entrymodule.json5 中添加相机权限。

"requestPermissions": [
      {
        "name": "ohos.permission.CAMERA",
        "reason": "$string:permission_reason_camera",
        "usedScene": {
          "abilities": [
            "EntryAbility"
          ],
          "when": "always"
        }
      }
]

API 使用

实现 ScanInterface 接口

import { ScanInterface } from '@mpaas/scanapp';

const params: Map<string, Object> = new Map()

params.set('showAlbum', true) //是否显示相册入口
params.set('open','轻触照亮')  // 环境提示文案 不超过4个字符
params.set('close','轻触关闭') // 环境提示文案 不超过4个字符
params.set('more','多码识别')  // 多码识别提示文案
params.set('targetColor',Color.Red) // 命中二维码后 效果颜色
params.set('fullScreen',true) //是否开启全屏渲染

class ScanDefault implements ScanInterface {
  getResult(result: string): void { // 获取扫码结果
    try {
      promptAction.showDialog({
        message: result,
      })
    } catch (error) {
      console.error('start fail error = ' + JSON.stringify(error))
    }
    处理路由逻辑
    router.back() || router.pushUrl()
  }

  customParams?: Map<string, Object> | undefined = params

} 

实现 ScanManager

import { ScanManager } from '@mpaas/scanapp';

跳转前对 ScanManager 初始化
ScanManager.defaultManager(new ScanDefault())

引入 Scan 组件

在组件外调用
import ('@mpaas/scanapp/Index') 
重要

这里是有自定义 router 的自定义 page name 的形式跳转目前写死的扫一扫组件 URL 为 mPaasScanPage

跳转扫一扫页面

router.pushNamedRoute({name: 'mPaasScanPage'})