背景:
設(shè)備: 鴻合?電子班牌 刷卡對接 WS-B22CS, 安卓11;
需求: 將刷卡器的數(shù)據(jù)傳遞到自己的App中, 作為上下崗信息使用, 以完成業(yè)務(wù);
對接方式:
1. 廠家技術(shù)首先推薦使用 接收自定義廣播的方式來獲取, 參考代碼如下
?對應(yīng)到uniApp 中的實(shí)現(xiàn)如下
<template>
<view class="content">
<text class="title">內(nèi)容: {{cardnumber}}</text>
</view>
</template>
<script>
var main, receiver, filter;
export default {
name: 'GetCardNumber',
data() {
return {
cardnumber: ''
}
},
created: function(option) {
this.init();
setTimeout(() => {
this.start();
}, 2000)
},
onHide: function() {
this.stop();
},
destroyed: function() {
this.stop();
},
methods: {
init() {
let _this = this;
main = plus.android.runtimeMainActivity(); //獲取activity
var IntentFilter = plus.android.importClass('android.content.IntentFilter');
filter = new IntentFilter();
filter.addAction("android.intent.action.getcardnumber"); // 換你的廣播動(dòng)作
receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
onReceive: function(context, intent) {
plus.android.importClass(intent);
let code = intent.getStringExtra("cardnumber"); // 換你的廣播標(biāo)簽
console.log('code', code)
_this.cardnumber = code
}
});
},
start() {
main.registerReceiver(receiver, filter);
},
stop() {
main.unregisterReceiver(receiver);
},
}
}
</script>
2. 使用uniApp 市場的?Fvv-UniSerialPort ?插件實(shí)現(xiàn)與設(shè)備串口交互, 讀取數(shù)據(jù)并轉(zhuǎn)換
https://github.com/looooooooooooooooooooooool/UniSerialPort/tree/master/uni-app/nativeplugins/Fvv-UniSerialPort
安卓串口通信 Fvv-UniSerialPort - DCloud 插件市場
<template>
<view class="content">
<text class="title">讀取到的內(nèi)容: {{cardnumber}}</text>
</view>
</template>
<script>
const serialPort = uni.requireNativePlugin('Fvv-UniSerialPort')
export default {
name: 'GetCardNumber',
data() {
return {
cardnumber: '1111111111'
}
},
created: function(option) {
serialPort.getAllDeviceList(res => {
console.log('//設(shè)備列表', res)
})
serialPort.getAllDevicePath(res => {
console.log('//路徑列表', res)
}),
setTimeout(() => {
serialPort.setPath('/dev/ttyS3')
serialPort.setBaudRate(9600)
serialPort.open(res => {
if (!res.status) {
uni.showToast({
title: res.msg,
duration: 2000,
icon: "none"
});
return
}
uni.showToast({
title: "已打開",
duration: 2000,
});
serialPort.onMessageHex(rec => {
console.log(rec)
this.cardnumber += rec + "\r\n"
}, send => {
console.log(send)
})
})
}, 10000)
},
}
</script>
注意事項(xiàng):
1. 使用?Fvv-UniSerialPort 插件時(shí), 控制臺(tái)一直報(bào)錯(cuò)
==>?因?yàn)槟憔庉嬐甏a就直接調(diào)試的原因,?你編輯完代碼重啟app再調(diào)試就可以了,?而且串口不要多次打開和關(guān)閉,直接在全局的地方打開一次,不用關(guān)閉的
2. 讀卡出來內(nèi)容不完整或不一樣
==>?指令要按照設(shè)備的文檔來處理分割和拼接之后再使用
附一張?jiān)O(shè)備實(shí)物圖?文章來源:http://www.zghlxwxcb.cn/news/detail-622792.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-622792.html
到了這里,關(guān)于uniApp 對接安卓平板刷卡器, 讀取串口數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!