第三方平台微信平台下的蓝牙打印
程序员文章站
2022-07-02 09:07:39
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言前段时间甲方爸爸突然要求在原先的公众号内嵌的h5页面或者小程序里加入面单的蓝牙打印功能。之前做过app的蓝牙打印插件,h5还是第一次,走过很多坑,也尝试了很多方法,看了网上很多摸棱两可的方案。网上最多的就是h5+和小程序文档中自带的蓝牙插件,看多了h5+的各种例子,我以为h5无敌了,实际操作才知道h5+还是内嵌.....
文章目录
前言
前段时间有个需求要求在原先的公众号内嵌的h5页面或者小程序里加入面单的蓝牙打印功能。之前做过app的蓝牙打印插件,h5还是第一次,走过很多坑,也尝试了很多方法,看了网上很多摸棱两可的方案。网上最多的就是h5+和小程序文档中自带的蓝牙插件,看多了h5+的各种例子,我以为h5无敌了,实际操作才知道h5+还是内嵌app的功能调用,实际的纯h5并不适用,大家一定要谨记我走过的坑,尽量不要再往下跳了,哈哈。挖了两天坑,时间紧迫还是回归了小程序的蓝牙打印,小程序的蓝牙打印也是摸棱两可的文档,用了官方给的例子,helloword都没打印出来,多次调试和同事的帮助下,才发现是打印机服务的问题。来让我们踩踩坑:
一、蓝牙打印的步骤?
我们先来看看微小程序官方给出的文档:
为了便于解读,下面是我画的详细逻辑图
二、使用过程中的问题
1.节流与防抖
由于搜索蓝牙和建立连接、打印等过程是不断循环的操作,如果不做好节流与防抖,非常容易产生代码泄露、卡顿等问题,具体代码如下:
startBluetoothDevicesDiscovery() {//开始搜寻附近的蓝牙外围设备
if (this._discoveryStarted) {
return
}
this._discoveryStarted = true
wx.startBluetoothDevicesDiscovery({
allowDuplicatesKey: true,
success: (res) => {
console.log('startBluetoothDevicesDiscovery success', res)
this.onBluetoothDeviceFound()
this._discoveryStarted = false
},
})
},
2.正确建立服务连接
官方给出的文档和代码是针对读写作为主服务的蓝牙打印机,由于我们公司采用的是汉印打印机,他是有三个主服务的,所以在建立连接的时候还需要筛选出需要的服务再进行启动
2.cpcl指令
参考cpcl指令集http://www.docin.com/p-2160105026.html
总结
细心一点,耐心一点,没有什么解决不了的
本文地址:https://blog.csdn.net/qq_31551105/article/details/109463539
上一篇: 吃香蕉发胖吗,你肯定想知道