|
@@ -0,0 +1,173 @@
|
|
|
+// //初始化
|
|
|
+// export function init (){
|
|
|
+// let HTML5_PLUS_REFLECT_BROADCASTRECEIVER = "io.dcloud.feature.internal.reflect.BroadcastReceiver" // html5+ 创建数据监听api
|
|
|
+// let HTML5_PLUS_CONTENT_INTENT = "android.content.Intent" // html5+ 初始化上下文
|
|
|
+// let HTML5_PLUS_CONTENT_INTENTFILTER = "android.content.IntentFilter" // html5+ 暴露接口
|
|
|
+// let HTML5_PLUS_RUNTIME_MAIN_ACTIVITY = null // 设备活动
|
|
|
+// let HTML5_PLUS_KEY_DOWN = "com.aoro.poc.key.down" // 按钮被按下
|
|
|
+// // 广播对象
|
|
|
+// let POC_KEY_DOWN_OBJ = null
|
|
|
+// // 扫描对象
|
|
|
+// let SCANOBJ = {
|
|
|
+// ACTION_SCAN_RESULT : "com.action.SCAN_RESULT",
|
|
|
+// SCAN_SERVICE: "com.action.INIT_SCAN", // 扫描权限
|
|
|
+// SCAN_RESULT: "com.action.SCAN_RESULT", // 扫描结果
|
|
|
+// SCAN_BEGIN: "com.action.START_SCAN", // 开始扫描
|
|
|
+// SCAN_END: "com.action.STOP_SCAN", // 关闭扫描
|
|
|
+// }
|
|
|
+// // RFID 对象
|
|
|
+// let RFID_SDK_WX = null
|
|
|
+// // 0红外扫描 1 RFID
|
|
|
+// let TYPE_DEV_JQHWGEVIQUWVILBE = 0
|
|
|
+// // RFID 时间
|
|
|
+// let RFIDIntervalTime = null
|
|
|
+// // RFID type
|
|
|
+// let ISRFIDOPEN = false
|
|
|
+// let HTML5_PLUS_CONTENT_INTENT_CLASS = plus.android.importClass(HTML5_PLUS_CONTENT_INTENT);
|
|
|
+// HTML5_PLUS_RUNTIME_MAIN_ACTIVITY = plus.android.runtimeMainActivity(); // HTML5_PLUS 获取 activity
|
|
|
+
|
|
|
+// // 权限
|
|
|
+// let intentServer = new HTML5_PLUS_CONTENT_INTENT_CLASS(SCANOBJ.SCAN_SERVICE);
|
|
|
+// HTML5_PLUS_RUNTIME_MAIN_ACTIVITY.sendBroadcast(intentServer);
|
|
|
+
|
|
|
+// // HTML5_PLUS 创建数据监听函数
|
|
|
+// POC_KEY_DOWN_OBJ = plus.android.implements(
|
|
|
+// HTML5_PLUS_REFLECT_BROADCASTRECEIVER, {
|
|
|
+// onReceive: (context, intent) => {
|
|
|
+// plus.android.importClass(intent);
|
|
|
+// // 红外扫描结果
|
|
|
+// if (intent.getAction() === SCANOBJ.SCAN_RESULT) {
|
|
|
+// let _data_ = intent.getByteArrayExtra("scanContext")
|
|
|
+// let codeStr = byteToString(_data_)
|
|
|
+// console.log(`回调数据:${codeStr}`)
|
|
|
+// uni.$emit('scancodemsg', {
|
|
|
+// msg: _data_
|
|
|
+// })
|
|
|
+// }
|
|
|
+// // // 红外扫描结果
|
|
|
+// // if (intent.getAction() === SCANOBJ.SCAN_RESULT) {
|
|
|
+// // let _data_ = intent.getByteArrayExtra("scanContext")
|
|
|
+// // let codeStr = byteToString(_data_)
|
|
|
+// // // console.log(`回调数据:${codeStr}`)
|
|
|
+// // uni.$emit('scancodemsg', {
|
|
|
+// // msg: _data_
|
|
|
+// // })
|
|
|
+// // }
|
|
|
+// // // 按钮按下
|
|
|
+// // if (intent.getAction() === HTML5_PLUS_KEY_DOWN && TYPE_DEV_JQHWGEVIQUWVILBE ===
|
|
|
+// // 0) {
|
|
|
+// // // 调用扫描头
|
|
|
+// // console.log("按键被按下,开始扫描")
|
|
|
+// // let intents = new HTML5_PLUS_CONTENT_INTENT_CLASS(SCANOBJ
|
|
|
+// // .SCAN_BEGIN); // 红外扫描开启
|
|
|
+// // HTML5_PLUS_RUNTIME_MAIN_ACTIVITY.sendBroadcast(intents);
|
|
|
+// // } else if (intent.getAction() === HTML5_PLUS_KEY_DOWN &&
|
|
|
+// // TYPE_DEV_JQHWGEVIQUWVILBE === 1) {
|
|
|
+// // console.log("按键被按下,开启RFID")
|
|
|
+// // ISRFIDOPEN = !ISRFIDOPEN
|
|
|
+// // if (ISRFIDOPEN === true) {
|
|
|
+// // console.log("开启RFID")
|
|
|
+// // RFIDStartInventory()
|
|
|
+// // } else {
|
|
|
+// // console.log("关闭RFID")
|
|
|
+// // RFIDStopInventory()
|
|
|
+// // }
|
|
|
+// // }
|
|
|
+// }
|
|
|
+// }
|
|
|
+// );
|
|
|
+// let IntentFilter = plus.android.importClass(HTML5_PLUS_CONTENT_INTENTFILTER); // 暴露接口对象
|
|
|
+// let filter = new IntentFilter();
|
|
|
+// filter.addAction(SCANOBJ.ACTION_SCAN_RESULT); // 红外 扫描结果,广播
|
|
|
+// filter.addAction(HTML5_PLUS_KEY_DOWN); // 按钮对按钮,广播
|
|
|
+// filter.addAction(SCANOBJ.SCAN_RESULT); // 红外 扫描结果,广播
|
|
|
+// HTML5_PLUS_RUNTIME_MAIN_ACTIVITY.registerReceiver(POC_KEY_DOWN_OBJ, filter); // 注册功能
|
|
|
+// }
|
|
|
+//初始化?
|
|
|
+export function allScan(HTML5_PLUS_RUNTIME_MAIN_ACTIVITY,POC_KEY_DOWN_OBJ,filter,typeset) {
|
|
|
+ let HTML5_PLUS_REFLECT_BROADCASTRECEIVER = "io.dcloud.feature.internal.reflect.BroadcastReceiver" // html5+ 创建数据监听api
|
|
|
+ let HTML5_PLUS_CONTENT_INTENT = "android.content.Intent" // html5+ 初始化上下文
|
|
|
+ let HTML5_PLUS_CONTENT_INTENTFILTER = "android.content.IntentFilter" // html5+ 暴露接口
|
|
|
+ let HTML5_PLUS_KEY_DOWN = "com.aoro.poc.key.down" // 按钮被按下
|
|
|
+ // 广播对象
|
|
|
+ // 扫描对象
|
|
|
+ let SCANOBJ = {
|
|
|
+ ACTION_SCAN_RESULT : "com.action.SCAN_RESULT",
|
|
|
+ SCAN_SERVICE: "com.action.INIT_SCAN", // 扫描权限
|
|
|
+ SCAN_RESULT: "com.action.SCAN_RESULT", // 扫描结果
|
|
|
+ SCAN_BEGIN: "com.action.START_SCAN", // 开始扫描
|
|
|
+ SCAN_END: "com.action.STOP_SCAN", // 关闭扫描
|
|
|
+ }
|
|
|
+ //初始化
|
|
|
+ let HTML5_PLUS_CONTENT_INTENT_CLASS = plus.android.importClass(HTML5_PLUS_CONTENT_INTENT);
|
|
|
+ HTML5_PLUS_RUNTIME_MAIN_ACTIVITY = plus.android.runtimeMainActivity(); // HTML5_PLUS 获取 activity
|
|
|
+
|
|
|
+ // 权限
|
|
|
+ let intentServer = new HTML5_PLUS_CONTENT_INTENT_CLASS(SCANOBJ.SCAN_SERVICE);
|
|
|
+ HTML5_PLUS_RUNTIME_MAIN_ACTIVITY.sendBroadcast(intentServer);
|
|
|
+
|
|
|
+ // HTML5_PLUS 创建数据监听函数
|
|
|
+ POC_KEY_DOWN_OBJ = plus.android.implements(
|
|
|
+ HTML5_PLUS_REFLECT_BROADCASTRECEIVER, {
|
|
|
+ onReceive: (context, intent) => {
|
|
|
+ plus.android.importClass(intent);
|
|
|
+ // 红外扫描结果
|
|
|
+ if (intent.getAction() === SCANOBJ.SCAN_RESULT) {
|
|
|
+ let _data_ = intent.getByteArrayExtra("scanContext")
|
|
|
+ let codeStr = byteToString(_data_)
|
|
|
+ console.log(`回调数据:${codeStr}`)
|
|
|
+ uni.$emit('scancodemsg', {
|
|
|
+ msg: _data_
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+ let IntentFilter = plus.android.importClass(HTML5_PLUS_CONTENT_INTENTFILTER); // 暴露接口对象
|
|
|
+ filter = new IntentFilter();
|
|
|
+ filter.addAction(SCANOBJ.ACTION_SCAN_RESULT); // 红外 扫描结果,广播
|
|
|
+ filter.addAction(HTML5_PLUS_KEY_DOWN); // 按钮对按钮,广播
|
|
|
+ filter.addAction(SCANOBJ.SCAN_RESULT); // 红外 扫描结果,广播
|
|
|
+ // HTML5_PLUS_RUNTIME_MAIN_ACTIVITY.registerReceiver(POC_KEY_DOWN_OBJ, filter); // 注册功能
|
|
|
+ let arr = [HTML5_PLUS_RUNTIME_MAIN_ACTIVITY,POC_KEY_DOWN_OBJ,filter]
|
|
|
+ return arr
|
|
|
+ // if (typeset === 0) {//为0时候是开始//其他为结束
|
|
|
+ // startScan(HTML5_PLUS_RUNTIME_MAIN_ACTIVITY,POC_KEY_DOWN_OBJ,filter)
|
|
|
+ // } else {
|
|
|
+ // stopScan(HTML5_PLUS_RUNTIME_MAIN_ACTIVITY,POC_KEY_DOWN_OBJ)
|
|
|
+ // }
|
|
|
+}
|
|
|
+//开始
|
|
|
+export function startScan(HTML5_PLUS_RUNTIME_MAIN_ACTIVITY,POC_KEY_DOWN_OBJ,filter){
|
|
|
+ HTML5_PLUS_RUNTIME_MAIN_ACTIVITY.registerReceiver(POC_KEY_DOWN_OBJ, filter);
|
|
|
+}
|
|
|
+//结束
|
|
|
+export function stopScan(HTML5_PLUS_RUNTIME_MAIN_ACTIVITY,POC_KEY_DOWN_OBJ){
|
|
|
+ HTML5_PLUS_RUNTIME_MAIN_ACTIVITY.unregisterReceiver(POC_KEY_DOWN_OBJ);
|
|
|
+}
|
|
|
+export function byteToString (arr) {
|
|
|
+ if(typeof arr === 'string') {
|
|
|
+ return arr;
|
|
|
+ }
|
|
|
+ var str = '',
|
|
|
+ _arr = arr;
|
|
|
+ for(var i = 0; i < _arr.length; i++) {
|
|
|
+ var one = _arr[i].toString(2),
|
|
|
+ v = one.match(/^1+?(?=0)/);
|
|
|
+ if(v && one.length == 8) {
|
|
|
+ var bytesLength = v[0].length;
|
|
|
+ var store = _arr[i].toString(2).slice(7 - bytesLength);
|
|
|
+ for(var st = 1; st < bytesLength; st++) {
|
|
|
+ store += _arr[st + i].toString(2).slice(2);
|
|
|
+ }
|
|
|
+ str += String.fromCharCode(parseInt(store, 2));
|
|
|
+ i += bytesLength - 1;
|
|
|
+ } else {
|
|
|
+ str += String.fromCharCode(_arr[i]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return str;
|
|
|
+}
|
|
|
+export const broadcastScan = {
|
|
|
+ // init,
|
|
|
+};
|