第三方平台微信平台下的蓝牙打印

文章目录

  • 前言
  • 一、蓝牙打印的步骤?
  • 二、使用过程中出现的问题
    • 1.节流与防抖
    • 2.正确建立服务连接
  • 总结

 

前言

       前段时间有个需求要求在原先的公众号内嵌的h5页面或者小程序里加入面单的蓝牙打印功能。之前做过app的蓝牙打印插件,h5还是第一次,走过很多坑,也尝试了很多方法,看了网上很多摸棱两可的方案。网上最多的就是h5+和小程序文档中自带的蓝牙插件,看多了h5+的各种例子,我以为h5无敌了,实际操作才知道h5+还是内嵌app的功能调用,实际的纯h5并不适用,大家一定要谨记我走过的坑,尽量不要再往下跳了,哈哈。挖了两天坑,时间紧迫还是回归了小程序的蓝牙打印,小程序的蓝牙打印也是摸棱两可的文档,用了官方给的例子,helloword都没打印出来,多次调试和同事的帮助下,才发现是打印机服务的问题。来让我们踩踩坑:

一、蓝牙打印的步骤?

我们先来看看微小程序官方给出的文档:

https://developers.weixin.qq.com/miniprogram/dev/api/device/bluetooth-ble/wx.writeBLECharacteristicValue.html

为了便于解读,下面是我画的详细逻辑图

 

二、使用过程中的问题

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

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐