uniapp App監聽PDA掃描工具資料
1、需求是:App監聽東大PDA內置的掃描工具,通過掃描工具掃描條碼,把資料自動賦值在input輸入框,無需手動設定或者呼叫uniapp的uni.scanCode({})去賦值
2、呼叫的代碼已經封裝成js,直接去復制呼叫即可,感覺能解決了問題的,動動小指頭點個贊~ O(∩_∩)O
附帶一張掃描工具樣子:

A、頁面上的呼叫如下:
methods:{
getScancode(code){
this.config =code
}
},
onLoad() {
//init傳入一個回呼函式做引數,在掃描的時候會將資料傳入這個方法里,然后在處理你的業務邏輯
broadcastScan.init(this.getScancode);
},
onUnload() {
broadcastScan.stop();
},
onHide() {
broadcastScan.stop();
},
onShow() {
broadcastScan.start();
}
B、創建一個js檔案,復制以下代碼,
let main;
let filter;
let receiver;
let tag = false;
/**
* 開始廣播監聽掃碼
* that:傳this;
*/
const start = () => {
/* #ifdef APP-PLUS */
main.registerReceiver(receiver, filter);
/* #endif */
}
/**
* 停止廣播監聽掃碼
* that:傳this;
*/
const stop = () => {
/* #ifdef APP-PLUS */
main.unregisterReceiver(receiver);
/* #endif */
}
/** 剩余下個變數已經做了全域變數
*
* 定義廣播
* that:傳this;
*/
const init = (onReceive) => {
/* #ifdef APP-PLUS */
//獲取activity
main = plus.android.runtimeMainActivity();
const IntentFilter = plus.android.importClass('android.content.IntentFilter');
filter = new IntentFilter();
// 掃描設定的廣播名稱
filter.addAction("com.android.server.scannerservice.broadcast");
receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
onReceive: function(context, intent) {
plus.android.importClass(intent);
// 掃描設定的開發者選項--鍵值名稱 scannerdata
const code = intent.getStringExtra("scannerdata");
// 業務
//防重復
if (tag) return;
tag = true;
setTimeout(function() {
tag = false;
}, 150);
//到這里掃描成功了,可以呼叫自己的業務邏輯,code就是掃描的結果 return出code進行業務處理
onReceive && onReceive(code);
}
});
/* #endif */
}
export const broadcastScan = {
init,
start,
stop,
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/234923.html
標籤:其他
