前言
因为小程序官方是支持接入低能蓝牙(BLE)的,所以在一个项目中也尝试使用如何接入蓝牙,我们从微信的官方网站就可以清楚知道如何使用,但是其中也是有很多坑的。本着学习的心态,自己也手把手带你摸坑,一起处理一些平台兼容性的问题以及一些逻辑判断问题
作者在开发一款共享干衣机小程序,用的是uniapp
框架进行开发的,开发期间时遇到了 苹果(ios) 和 安卓(android)手机 获取到的 deviceId(mac)
地址不一致问题;
1、设备绑定
在共享设备铺货到酒店等场所时,我们会让工作人员使用小程序码对共享干衣机设备进行绑定,这个目的就是为了解决,用户打开蓝牙连接时会出现N个蓝牙,用户会不知所措的问题。
绑定过程需要填写以下信息:
- 1、蓝牙名称:自动生成
- 2、设备编码:扫描提前生成的小程序码(里面包含了设备编码)
- 3、设备:选择设备就是我们选择蓝牙然后拿到
deviceId(mac地址)
- 4、代理商
- 5、商户
- 6、网点
2、用户使用流程
我们这个共享项目的用户使用流程是:
- 1、用户扫码(生成的小程序码) 里面包含设备蓝牙信息;
- 2、弹出连接蓝牙给用户连接 (通过小程序码里的蓝牙信息里的
deviceId(mac地址)
过滤掉其他蓝牙,只显示用户扫码设备的蓝牙); - 3、用户连接成功后 隐藏连接蓝牙按钮显示 立即使用按钮;
- 4、用户选择使用时长(默认30分钟);
- 5、点击立即使用调用支付;
- 6、支付成功后 (小程序下发开关定时指令给干衣机设备进行使用);
3、平台差异化
因为我们使用的是uniapp
框架开发所以没看到uniapp
说明这个…(大坑)
后来我们从微信文档上面看到这样一段话:
看到这里我就想着,完犊子了,因为我们的手机平台有安卓和苹果,唯一标识蓝牙的就是deviceId
,但是苹果搜索出来就不是这个了,而