微信小程序 - 蓝牙打印

最近刚好完成了一个打印标签的项目,其中就涉及到了小程序的蓝牙功能。所以写下这篇粗略的文章记录一下,同时也是给即将做相关项目的亲们提供一个参考,也希望有什么描述不恰当或者技术上不正确的地方大家可以指出,一起进步。

蓝牙打印只要按这九个步骤(前六个步骤连接蓝牙,后三个步骤打印数据)就可以搞定啦!步骤如下:

第一步:初始化蓝牙模块 wx.openBluetoothAdapter

wx.openBluetoothAdapter({
  success (res) {
    console.log(res)//res:{errMsg: "openBluetoothAdapter:ok"}
  }
})

第二步:开始搜寻附近的蓝牙外围设备 wx.startBluetoothDevicesDiscovery

wx.startBluetoothDevicesDiscovery({
  //services: ['FEE7'],只搜索主服务 UUID 为 FEE7 的设备,如果明确知道主服务UUID可以用此项做筛选
  success (res) {
    console.log(res)//res:{errCode: 0, errMsg: "startBluetoothDevicesDiscovery:ok", isDiscovering: true}
  }
})

第三步:获取已搜素到的蓝牙设备列表 wx.getBluetoothDevices

wx.getBluetoothDevices({
  success: function (res) {
    console.log(res)//res:{errMsg: "getBluetoothDevices:ok", devices: Array(3)}
  }
})

第四步:监听寻找到新设备的事件 wx.onBluetoothDeviceFound(有时候会第三步会搜不到所以需要使用监听器去随时监听搜索到的蓝牙设备并返回给你)

wx.onBluetoothDeviceFound(function(res) {
    console.log(res)//res:{devices: Array(1)}
})

第五步:连接蓝牙设备 wx.createBLEConnection

wx.createBLEConnection({
  deviceId,//上面选择蓝牙设备的deviceId,例:连接第一个设备devices[0].deviceId
  success (res) {
    console.log(res)//{errCode: 0, errMsg: "createBLEConnection:ok"}
  }
})

第六步:停止搜寻附近的蓝牙外围设备 wx.stopBluetoothDevicesDiscovery(可以写在第五步成功回调之后,或者是onUnload()函数里)

wx.stopBluetoothDevicesDiscovery({
  success (res) {
    console.log(res)
  }
})

第七步:获取蓝牙设备所有服务 wx.getBLEDeviceServices

wx.getBLEDeviceServices({
  deviceId,//已连接的蓝牙设备ID
  success (res) {
    console.log(res)//{errMsg: "getBLEDeviceServices:ok", services: Array(5), errCode: 0}
  }
})
//这边获取到了5个服务

第八步:获取蓝牙设备中某一个服务的所有特征值 wx.getBLEDeviceCharacteristics

var characteristics="";
wx.getBLEDeviceCharacteristics({
  deviceId,
  serviceId,//第七步的服务ID,
  success (res) {
    //res:{errMsg: "getBLEDeviceCharacteristics:ok", characteristics: Array(4), errCode: 0}
    //characteristics[0].properties: {read: true, write: false, notify: false, indicate: false}
    //特征值有好几种类型,我们这边打印需要的是item.properties.write为true的特征值
	for (var i = 0; i < res.characteristics.length; i++) {
		var item = res.characteristics[i];
		if (item.properties.write) {
			characteristics = item.uuid;
		}
	}
    //保存特征值
  }
})

第九步:向蓝牙设备特征值中写入数据 wx.writeBLECharacteristicValue

wx.writeBLECharacteristicValue({
  deviceId,
  serviceId,
  characteristicId,//上面保存的特征值
  value: buffer, // 这里的value是ArrayBuffer类型,中间层传过来的打印数据前端自己做转换,转换过程我这边就不描述了;
  success (res) {
    console.log('writeBLECharacteristicValue success', res.errMsg)
  }
})
//特别提醒建议每次写入的buffer不超过20字节,超过会有写入错误的风险,所以一个打印的内容可能要拆成N个20字节的buffer去循环writeBLECharacteristicValue,这样就能打印成功啦。

附:
微信小程序官方文档
示例代码(uniapp实现小程序蓝牙打印简易流程)
另注:无论是原生、WePY、mpvue或uniapp、调用步骤都是一样的,不过调用API的前缀需要改成对应的就OK了
如果示例代码对你有一点点用处的话点一个小星星吧
转载请注明出处~

### 回答1: UIApp微信小程序蓝牙批量打印设置提供了简便的方式来配置和管理蓝牙打印设备。通过这个设置,用户可以轻松地连接和操作多个蓝牙打印机。 首先,在UIApp微信小程序中,用户可以点击设置菜单进入蓝牙打印设置页面。在该页面上,用户可以看到已经连接的蓝牙打印机列表,并可以选择连接新的打印机。 用户可以通过点击搜索按钮来扫描周围的蓝牙设备。一旦找到了需要连接的打印机,用户可以点击该设备并输入密码(如果需要)进行连接。连接成功后,打印机将会在已连接设备列表中显示。 在已连接设备列表中,用户可以选择默认打印机。默认打印机将是用户首选的打印设备,在用户不指定打印机时将自动选择该设备进行打印。 UIApp提供了多种打印设置选项供用户选择。用户可以根据需要设置打印机的纸张大小、页面方向、打印质量等参数。此外,用户还可以选择打印多份、打印双面等功能。 通过这个蓝牙批量打印设置,用户可以方便地管理和配置多个蓝牙打印设备,提高打印效率。无论是在家庭环境还是办公场所,UIApp微信小程序蓝牙批量打印设置都将为用户提供便捷的打印操作体验。 ### 回答2: 要在UIapp微信小程序中设置蓝牙批量打印,首先需要确保小程序已经获取了蓝牙权限。接下来,我们需要使用微信小程序提供的蓝牙接口进行相关设置。 首先,我们需要调用`wx.getBluetoothAdapterState`方法来获取蓝牙适配器的状态。通过判断蓝牙适配器状态中的`available`字段来确定当前设备是否支持蓝牙功能。如果支持蓝牙功能,则可以继续进行下一步设置。 接下来,我们需要使用`wx.openBluetoothAdapter`方法来打开蓝牙适配器。在蓝牙适配器打开后,我们可以调用`wx.startBluetoothDevicesDiscovery`方法来开始搜索附近的蓝牙设备。 搜索到蓝牙设备后,可以调用`wx.getBluetoothDevices`方法来获取搜索到的设备列表。可以通过遍历设备列表来找到需要连接的蓝牙设备。找到目标设备后,可以使用`wx.createBLEConnection`方法来与设备建立蓝牙连接。 连接成功后,我们可以使用`wx.getBLEDeviceServices`方法来获取设备的服务列表。通过遍历服务列表,找到需要使用的服务,然后使用`wx.getBLEDeviceCharacteristics`方法获取服务中的特征值列表。 接下来,我们可以调用`wx.writeBLECharacteristicValue`方法来向特征值写入数据。这样可以实现向蓝牙设备发送打印指令。 最后,当不再需要与蓝牙设备通信时,可以调用`wx.closeBLEConnection`方法来断开蓝牙连接。同时,为了节约设备电量,也可以调用`wx.stopBluetoothDevicesDiscovery`方法停止蓝牙设备的搜索。 以上就是在UIapp微信小程序中设置蓝牙批量打印的步骤。实现这些功能可以通过使用微信小程序蓝牙接口,并通过正确的参数和方法调用来完成。 ### 回答3: uiapp微信小程序蓝牙批量打印设置是指在使用uiapp微信小程序时,通过蓝牙连接多个打印设备,实现批量打印的设置操作。 首先,在uiapp微信小程序中,我们需要打开蓝牙设备的权限,并搜索附近的可连接打印设备。在搜索到设备后,可以选择其中一个设备进行连接。 连接成功后,可以进行打印设置的操作。首先,可以选择要打印的文件或内容,可以是文本、图片等。然后,可以设置打印的方式,比如单面打印还是双面打印、横向打印还是纵向打印等。还可以设置打印的质量,比如打印的分辨率、图像的色彩等。 除了基本的打印设置,还可以进行高级设置。比如可以设置打印的页码范围,只打印指定的页码或者打印全部页。还可以设置打印份数,指定需要打印的份数。还可以设置打印的排版方式,比如页面的边距、页眉页脚等。 在设置完成后,可以点击打印按钮,开始批量打印。此时,uiapp微信小程序会将要打印的内容发送给已连接的蓝牙设备,并开始打印操作。可以对打印过程进行监控,等待打印完成。打印完成后,可以查看打印结果,并根据需要选择是否继续打印其他内容或关闭连接。 总之,uiapp微信小程序蓝牙批量打印设置包括打开蓝牙权限、搜索设备、连接设备、选择打印内容、设置打印方式和质量、高级设置、打印操作监控等步骤。通过这些设置,用户可以方便地在uiapp微信小程序中实现蓝牙批量打印
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值