From f9e93380e5192b35943769950c698c50b86febb6 Mon Sep 17 00:00:00 2001 From: whycq <913841844@qq.com> Date: 星期五, 13 九月 2024 08:41:21 +0800 Subject: [PATCH] # --- static/js/scanModule.js | 45 +++++++++++ pages/home/home.vue | 7 + pages/pakin/test.vue | 58 ++++++++++++++ pages.json | 11 ++ static/js/PresetsPda.js | 30 +++++++ pages/pakin/pakin.vue | 31 ++++++- 6 files changed, 177 insertions(+), 5 deletions(-) diff --git a/pages.json b/pages.json index be5a1d9..f0a0f11 100644 --- a/pages.json +++ b/pages.json @@ -184,7 +184,16 @@ "enablePullDownRefresh" : false } } - ], + ,{ + "path" : "pages/pakin/test", + "style" : + { + "navigationBarTitleText": "鏂囨湰娴嬭瘯", + "enablePullDownRefresh": false + } + + } + ], "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "uni-app", diff --git a/pages/home/home.vue b/pages/home/home.vue index 8df69e7..c3a36e3 100644 --- a/pages/home/home.vue +++ b/pages/home/home.vue @@ -31,6 +31,13 @@ cuIcon: 'pullup', url: '/pakin/pakin' }, + { + title: '鏂囨湰娴嬭瘯', + name: 'pakin', + color: 'cyan', + cuIcon: 'pullup', + url: '/pakin/test' + }, // { // title: '鍐嶆鎷f枡', // name: 'changePallet', diff --git a/pages/pakin/pakin.vue b/pages/pakin/pakin.vue index 1eb04f0..ff6b206 100644 --- a/pages/pakin/pakin.vue +++ b/pages/pakin/pakin.vue @@ -130,6 +130,8 @@ </template> <script> + import {setCurrentDeviceAction} from '../../static/js/PresetsPda.js' + import {initScan,startScan,stopScan} from '../../static/js/scanModule.js' export default { data() { return { @@ -203,11 +205,32 @@ }, // 鎼滅储鐗╂枡 findMat() { - let that = this + let _this = this + initScan(); + startScan(); let item = {} - item['threeCode'] = that.matnr - this.dataList.unshift(item) - this.focuss() + uni.$on("SCAN_CODE", ({code}) => { + console.log(code); + item['threeCode'] = code + if (_this.dataList.length > 0) { + let add = false + for (let k of _this.dataList) { + if (code == k.threeCode) { + add = false + } else { + add = true + } + } + if (add) { + _this.dataList.unshift(item) + } + } else { + _this.dataList.unshift(item) + } + _this.focuss() + // code灏辨槸鎵爜鐨勭粨鏋� 鎺ヤ笅鏉ュ啓涓氬姟闇�姹� + }); + }, selectMat() { let that = this diff --git a/pages/pakin/test.vue b/pages/pakin/test.vue new file mode 100644 index 0000000..9e90aa1 --- /dev/null +++ b/pages/pakin/test.vue @@ -0,0 +1,58 @@ +<template> + <view> + <view> + <!-- <input type="text" v-model="val" maxlength="600"/> --> + <textarea v-model="val" placeholder="" maxlength="600" @input="input"/> + </view> + <hr> + <view> + {{val}} + </view> + </view> +</template> + +<script> + import {setCurrentDeviceAction} from '../../static/js/PresetsPda.js' + import {initScan,startScan,stopScan} from '../../static/js/scanModule.js' + export default { + data() { + return { + val: '' + } + }, + onload() { + console.log("onLoad"); + // 灏嗘湰璁惧鐨勪俊鎭瓨鍏ユ湰鍦� + setCurrentDeviceAction(); + // 鍒濆鍖� + initScan(); + }, + destroyed() { + stopScan(); + }, + methods: { + input() { + console.log(this.val); + initScan(); + startScan(); + uni.$on("SCAN_CODE", ({code}) => { + console.log("code:" + code); + // code灏辨槸鎵爜鐨勭粨鏋� 鎺ヤ笅鏉ュ啓涓氬姟闇�姹� + }); + }, + mounted() { + initScan(); + startScan(); + uni.$on("SCAN_CODE", ({code}) => { + console.log("code:" + code); + // code灏辨槸鎵爜鐨勭粨鏋� 鎺ヤ笅鏉ュ啓涓氬姟闇�姹� + }); + }, + + } + } +</script> + +<style> + +</style> diff --git a/static/js/PresetsPda.js b/static/js/PresetsPda.js new file mode 100644 index 0000000..227ae9c --- /dev/null +++ b/static/js/PresetsPda.js @@ -0,0 +1,30 @@ +const deviceBrand = uni.getSystemInfoSync().deviceBrand; + +// 鐩墠宸茬煡鐨勫箍鎾姩浣滃拰骞挎挱鏍囩 鍚庣画鍙户缁彔鍔� +// 鑷畾涔夊箍鎾姩浣滃拰鏍囩涔熷彲杩涜棰勮 +export const actionData = [{ + // 闇嶅凹闊﹀皵锛堥粯璁ゅ箍鎾拰鏍囩锛� + deviceBrand: 'mobiwire', + action: 'com.honeywell.scan.broadcast', + stringExtra: 'data', + }, + { + // 浼樺崥璁紙榛樿骞挎挱鍜屾爣绛撅級 + deviceBrand: 'urovo', + action: 'android.intent.ACTION_DECODE_DATA', + stringExtra: 'barcode_string', + } +] + +// 棣栭〉杩涘叆椤甸潰 灏嗘湰璁惧鐨勪俊鎭瓨鍏ユ湰鍦� 濡傛灉璇ュ巶鍟嗘病鍦ㄩ璁句腑 灏辨嬁绗竴涓綅缃殑閰嶇疆锛屾牴鎹」鐩腑浣跨敤鐨凱DA鑷鍐冲畾 +export const setCurrentDeviceAction = () => { + // 濡傛灉鏈湴鏈夊瓨骞挎挱淇℃伅 灏变笉鎷夸簡 + if (uni.getStorageSync('currentDeviceData')?.deviceBrand) return + const data = actionData.find(item => deviceBrand === item.deviceBrand) + if (data && Object.keys(data).length) { + uni.setStorageSync('currentDeviceData', data) + } else { + uni.setStorageSync('currentDeviceData', actionData[0]) + } + +}; \ No newline at end of file diff --git a/static/js/scanModule.js b/static/js/scanModule.js new file mode 100644 index 0000000..3ac99d6 --- /dev/null +++ b/static/js/scanModule.js @@ -0,0 +1,45 @@ +let main, receiver, filter; +let _codeQueryTag = false; // 鏍囪鍙橀噺 + +export const initScan = () => { + + main = plus.android.runtimeMainActivity(); // 鑾峰彇涓� activity + var IntentFilter = plus.android.importClass("android.content.IntentFilter"); + filter = new IntentFilter(); + const action = uni.getStorageSync('currentDeviceData').action // 鑾峰彇鍔ㄤ綔 + const stringExtra = uni.getStorageSync('currentDeviceData').stringExtra // 鑾峰彇瀛楃涓查澶栧弬鏁� + filter.addAction(action); // 娣诲姞骞挎挱鍔ㄤ綔 + receiver = plus.android.implements( + "io.dcloud.feature.internal.reflect.BroadcastReceiver", + { + onReceive: function (context, intent) { + plus.android.importClass(intent); + let code = intent.getStringExtra(stringExtra); // 鑾峰彇骞挎挱涓殑瀛楃涓查澶栧弬鏁� + console.log(code); + queryCode(code); + }, + } + ); +}; + + +export const startScan = () => { + main.registerReceiver(receiver, filter); // 寮�濮嬬洃鍚箍鎾� +}; +export const stopScan = () => { + console.log(1); + main.unregisterReceiver(receiver); // 鍋滄鐩戝惉骞挎挱 + // 瑙g粦 uni 鍏ㄥ眬浜嬩欢鐩戝惉鍣紝鍚﹀垯鍙兘浼氬嚭閿� + uni.$off('SCAN_CODE'); +}; +export const queryCode = (code) => { + // 闃叉閲嶅鏌ヨ + if (_codeQueryTag) return false; + _codeQueryTag = true; // 鏍囪涓哄凡缁忔煡璇� + setTimeout(function () { + _codeQueryTag = false; // 閲嶇疆鏍囪 + }, 150); + var id = code; + //id 灏辨槸鎵爜鐨勭粨鏋� + uni.$emit("SCAN_CODE", { code: id }); // 瑙﹀彂 SCAN_CODE 浜嬩欢锛屽苟浼犻�掓壂鎻忓埌鐨勫唴瀹� +}; \ No newline at end of file -- Gitblit v1.9.1