Files
2026-06-02 15:28:25 +08:00

240 lines
6.9 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div>
<button type="primary" @click="initScanFunc()">初始化扫描</button>
<br/>
<button type="primary" @click="closeScanFunc()">结束扫描</button>
<br/>
<button type="primary" @click="scanStartFunc()">开启扫描</button>
<br/>
<button type="primary" @click="scanStopFunc()">停止扫描</button>
<br/>
<p>设置连续扫描时间间隔</p><input type="number" v-model="invTime" placeholder="时间间隔(单位ms)">
<button type="primary" @click="continueScanFunc(true)">连续扫描开启</button>
<br/>
<button type="primary" @click="continueScanFunc(false)">连续扫描关闭</button>
<br/>
<button type="primary" @click="setCenterModeFunc(0)">区域解码</button>
<br/>
<button type="primary" @click="setCenterModeFunc(1)">中心解码</button>
<br/>
<p>设置扫描输出模式</p>
<button type="primary" @click="setOutputModeFunc(0)">焦点</button>
<button type="primary" @click="setOutputModeFunc(1)">广播</button>
<button type="primary" @click="setOutputModeFunc(2)">模拟按键</button>
<p>部分旧版扫描软件不支持以下模式设置后会导致软件异常</p>
<button type="primary" @click="setOutputModeFunc(3)">复制</button>
<button type="primary" @click="setOutputModeFunc(4)">焦点&广播</button>
<br/>
<button type="primary" @click="setLockScanKeyFunc()">启用扫码功能</button>
<br/>
<button type="primary" @click="setUnLockScanKeyFunc()">禁用扫码功能</button>
<br/>
<button type="primary" @click="setMultiBarcodeEnableFunc()">启用多条码识别功能</button>
<br/>
<button type="primary" @click="setMultiBarcodeDisableFunc()">禁用多条码识别功能</button>
<br/>
<p>设置多条码识别数量</p><input type="number" v-model="mulNumber" placeholder="个数">
<button type="primary" @click="setMultiBarcodePreciseStatusEnableFunc()">启用多条码精准识别功能</button>
<br/>
<button type="primary" @click="setMultiBarcodePreciseStatusDisableFunc()">禁用多条码精准识别功能</button>
<br/>
<button type="primary" @click="goTestFunc()">打开新页面</button>
<text id="testcontent" class="intro">\n测试步骤\n1.点击初始化扫描\n2.按设备黄色扫描按键扫描到条码后弹窗提示条码数据\n3.页面关闭前点击结束扫描或调用closeScan()\n4.如需使用连续扫描功能请点击连续扫描开启或关闭按钮建议设置连续扫描时间间隔</text>
</div>
</template>
<script>
//获取module
var barcodeModel = uni.requireNativePlugin("iData-BarcodePlugin-BarcodeModule")
const modal = uni.requireNativePlugin('modal');
var globalEvent = uni.requireNativePlugin('globalEvent');
export default {
onLoad() {
globalEvent.addEventListener('iDataBarcodeEvent', function(e) {
console.log("收到条码:" + JSON.stringify(e));
modal.toast({
message: "收到条码:" + JSON.stringify(e),
duration: 1.5
});
//连续扫描如果间隔时间比较短,会出现toast不提示的情况,数据可以正常接收到,建议查看控制台输出
console.log(JSON.stringify(e));
});
barcodeModel.initScan((ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
},
onUnload() {
barcodeModel.closeScan((ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
globalEvent.removeEventListener('iDataBarcodeEvent');
},
data(){
return{
invTime:"500",
mulNumber:"3"
}
},
methods: {
goTestFunc(){
uni.navigateTo({
url: './scantest2'
});
},
initScanFunc() {
barcodeModel.initScan((ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
},
scanStartFunc() {
barcodeModel.scanStart((ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
},
scanStopFunc() {
barcodeModel.scanStop((ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
},
setCenterModeFunc(mode) {
// 区域/中心扫码设置
barcodeModel.setCenterMode(mode,
(ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
},
setOutputModeFunc(mode) {
// 扫描输出模式设置
barcodeModel.setOutputMode(mode,
(ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
},
continueScanFunc(enable) {
// 连续扫描设置:先设置扫描间隔时间,然后开启扫描开关
if(enable){
//设置连续扫描间隔时间
barcodeModel.intervalSet(this.invTime,
(ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
}
//设置连续扫描
barcodeModel.continueScan(enable,
(ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
},
closeScanFunc() {
barcodeModel.closeScan((ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
globalEvent.removeEventListener('iDataBarcodeEvent');
},
setLockScanKeyFunc() {
//启用扫码按键扫码功能,启用后按扫描键会自动触发扫码功能
barcodeModel.setScanKeyEnable(true,(ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
},
setUnLockScanKeyFunc() {
//禁用扫码按键扫码功能,禁用后按扫描键不会自动触发扫码功能,支持自行监听按键触发功能
barcodeModel.setScanKeyEnable(false,(ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
},
setMultiBarcodeEnableFunc() {
//启用多条码识别功能,启用后按扫描键会一次性识别多个条码并返回对应的条码数据,每个数据一行,分隔符为'\n'
barcodeModel.setMultiBarcodeEnable(true,(ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
},
setMultiBarcodeDisableFunc() {
//禁用多条码识别功能,禁用后按扫描键不会识别多个条码,仅识别一个条码
barcodeModel.setMultiBarcodeEnable(false,(ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
},
setMultiBarcodePreciseStatusEnableFunc() {
//启用多条码精准模式,配合多条码数据接口,识别到配置的多条码数量的条码后才会返回条码数据
barcodeModel.setMultiBarcodePreciseStatus(true,(ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
barcodeModel.setMultiBarcodeNumber(this.mulNumber,(ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
},
setMultiBarcodePreciseStatusDisableFunc() {
//禁用多条码精准模式
barcodeModel.setMultiBarcodePreciseStatus(false,(ret) => {
modal.toast({
message: ret,
duration: 1.5
});
});
}
}
}
</script>
<style>
</style>