| | |
| | | "enablePullDownRefresh" : false |
| | | } |
| | | } |
| | | ], |
| | | ,{ |
| | | "path" : "pages/pakin/test", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText": "文本测试", |
| | | "enablePullDownRefresh": false |
| | | } |
| | | |
| | | } |
| | | ], |
| | | "globalStyle": { |
| | | "navigationBarTextStyle": "black", |
| | | "navigationBarTitleText": "uni-app", |
| | |
| | | cuIcon: 'pullup', |
| | | url: '/pakin/pakin' |
| | | }, |
| | | { |
| | | title: '文本测试', |
| | | name: 'pakin', |
| | | color: 'cyan', |
| | | cuIcon: 'pullup', |
| | | url: '/pakin/test' |
| | | }, |
| | | // { |
| | | // title: '再次拣料', |
| | | // name: 'changePallet', |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import {setCurrentDeviceAction} from '../../static/js/PresetsPda.js' |
| | | import {initScan,startScan,stopScan} from '../../static/js/scanModule.js' |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | }, |
| | | // 搜索物料 |
| | | 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 |
New file |
| | |
| | | <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> |
New file |
| | |
| | | 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', |
| | | } |
| | | ] |
| | | |
| | | // 首页进入页面 将本设备的信息存入本地 如果该厂商没在预设中 就拿第一个位置的配置,根据项目中使用的PDA自行决定 |
| | | 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]) |
| | | } |
| | | |
| | | }; |
New file |
| | |
| | | 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); // 停止监听广播 |
| | | // 解绑 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 事件,并传递扫描到的内容 |
| | | }; |