vite-uni-dev-tool
Version:
vite-uni-dev-tool, debug, uni-app, 一处编写,到处调试
62 lines (48 loc) • 2.03 kB
Markdown
# useScanCode
useScanCode 是一个用于处理扫码功能的 Vue 3 Composition API Hook,支持 Android PDA 设备和 H5 浏览器环境下的扫码操作。
## 功能特性
- 多平台支持:同时支持 App(Android PDA)和 H5 环境
- 扫码枪兼容:H5 环境下可模拟扫码枪行为
## 安装或引入
```js
import useScanCode from 'uni-vite-dev-tool/dist/dev/v3/hooks/useScanCode';
```
## 参数说明
callback (必需)
- 类型: (code: string) => void
- 说明: 扫码成功后的回调函数,接收扫码得到的字符串
options (可选)
- 类型: Object
| 属性 | 类型 | 必需 | 默认值 | 说明 |
| ------------------------ | ---------------------- | ----------- | ---------------------- | ---------------------- |
| disabled | Ref<boolean> | 否 | - 控制是否禁用扫码功能 |
| broadcastAction | string | PDA模式必需 | - | Android 广播动作标识符 |
| broadcastStringDataLabel | string | PDA模式必需 | - | Android 广播数据标签 |
| scanDelay | number | 否 | 150 | 扫码延迟时间(毫秒) |
| onScanEnd | (code: string) => void | 否 | - | 扫码结束时的回调函数 |
## 示例代码
```ts
<template>
<view>
h5 扫码枪 pda 扫码
<input />
data: {{ data }}
</view>
</template>
<script lang="ts" setup>
import { ref } from 'vue';
import useScanCode from '../../dev/v3/hooks/useScanCode';
const data = ref();
useScanCode(
(code) => {
data.value = code;
console.log('code', code);
},
{
broadcastAction: 'android.intent.ACTION_DECODE_DATA',
broadcastStringDataLabel: 'barcode_string',
},
);
</script>
<style></style>
```