最近在做小票打印這塊,項目需求是IOS和安卓兩種都要實現,開始做的時候也是一臉懵,然後網上找了不少資料,踩了一堆坑,看了好多文章,結果還好成了
藍牙打印機一般分為兩種打印模式,票據打印、標籤打印
公司買的渣渣打印機連開發文檔都沒有,害我走了不少坑,讓我開發買的時候也不諮詢諮詢我
目前微信小程序連接藍牙打印機 wx.createBLEConnection 測試在IOS設備上沒有問題,在部分安卓手機上會出現異常(表現為,連接是會彈出系統配對框,不管點取消還是輸入配對碼後點確定,都會立馬斷開連接。如果不輸入也不取消則會在30秒以內自動斷開藍牙打印機)
現在採用的方式是各給安卓和IOS寫一套藍牙打印的命令
IOS
// ====================藍牙操作================== //初始化藍牙模組 openBluetoothAdapter() {
if (app.sysinfo.provider == 1) { // 開啟藍牙 app.onBluetooth() setTimeout(() => { this.android\_search() }, 2000) return false; } this.closeBluetoothAdapter() uni.openBluetoothAdapter({ success: (res) => { console.log("初始化藍牙模組: " + JSON.stringify(res)); this.startBluetoothDevicesDiscovery() }, fail: (res) => { if (res.errCode === 10001) { uni.onBluetoothAdapterStateChange((res) => { console.log('監聽藍牙適配器狀態變化事件', res) if (res.available == false) { app.global\_printing = {} this.connected = false this.chs = \[\] this.canWrite = false } if (res.available) { this.startBluetoothDevicesDiscovery() } }) } if (res.errCode) { app.alert('初始化藍牙失敗,錯誤碼:' + res.errCode) return false; } app.alert(res.errMsg) } }) },
...