feat: 无扫码配置时自动匹配并升至1.1.20

This commit is contained in:
2026-11-04 16:15:52 +08:00
parent 8315222788
commit c390b9f72b
6 changed files with 322 additions and 62 deletions
+4 -59
View File
@@ -1,19 +1,16 @@
// common/scanMixin.js
// 多厂商PDA扫码器兼容方案 - 策略模式 + 配置表驱动
import {
BUILTIN_SCANNER_CONFIGS,
getScanConfig,
hasShownNoConfigHint,
isPdaDevice as detectPdaDevice,
isPhoneScanConfig,
markNoConfigHintShown,
normalizeConfig,
PHONE_SCAN_CONFIG,
} from '@/common/scanConfig.js';
const PDA_DEVICE_KEYWORDS = [
'newland', 'nls', 'nlscan', 'sunmi', 'urovo', 'zebra', 'honeywell',
'idata', 'seuic', 'autoid', '东集', '东大',
];
export default {
data() {
return {
@@ -28,46 +25,7 @@ export default {
methods: {
getScannerConfigs() {
return [
{
// 东大集成 SEUIC / AUTOID 系列(如 AUTOID9),勿与新大陆 nlscan 混淆
brand: 'seuic',
name: '东大集成(AUTOID)',
action: 'com.android.server.scannerservice.broadcast',
dataKey: 'scannerdata',
needSetup: true,
setupAction: 'com.android.scanner.service_settings',
setupParams: {
barcode_send_mode: 'BROADCAST',
action_barcode_broadcast: 'com.android.server.scannerservice.broadcast',
key_barcode_broadcast: 'scannerdata',
endchar: 'NONE'
}
},
{
brand: 'sunmi',
name: '商米',
action: 'com.sunmi.scanner.ACTION_DATA_CODE_RECEIVED',
dataKey: 'data',
needSetup: false
},
{
brand: 'urovo',
name: '优博讯',
action: 'android.intent.ACTION_DECODE_DATA',
dataKey: 'barcode_string',
needSetup: false
},
{
// 新大陆 Newland,广播为 nlscan.action.SCANNER_RESULT
brand: 'nlscan',
name: '新大陆',
action: 'nlscan.action.SCANNER_RESULT',
dataKey: 'SCAN_BARCODE1',
needSetup: false
},
{ ...PHONE_SCAN_CONFIG },
];
return BUILTIN_SCANNER_CONFIGS;
},
getPhoneScanConfig() {
@@ -75,20 +33,7 @@ export default {
},
isPdaDevice() {
// #ifdef APP-PLUS
try {
const Build = plus.android.importClass('android.os.Build');
const manufacturer = String(Build.MANUFACTURER || '').toLowerCase();
const model = String(Build.MODEL || '').toLowerCase();
return PDA_DEVICE_KEYWORDS.some((keyword) => {
return manufacturer.includes(keyword) || model.includes(keyword);
});
} catch (error) {
console.log('检测设备类型失败', error);
return false;
}
// #endif
return false;
return detectPdaDevice();
},
shouldUsePhoneScan() {