微信小程序在移动互联网领域取得了巨大的成功,它依托微信这个广大的平台,以其免安装、跨平台、易于分享传播的优点,广泛地应用在各种场景,是继App后又一个革命性的信息展现方式。
看上去所有这些成功带给嵌入式的改变微乎其微,但事实上微信小程序平台提供了诸如蓝牙、NFC、WiFi等控制手机设备的接口,为小程序和嵌入式外设通信创造了可能性。
微信小程序的开发使用的语言是js,用腾讯自有的IDE开发环境,开发前需要申请注册账号,每次开发都要用绑定的微信扫描二维码才可以进入开发环境。流程虽然有点繁琐,但是腾讯提供了详细的文档,照着做下来还是比较容易的。
本文通过实现一个BLE数据传输profile来梳理一下微信小程序的蓝牙模块。
下图是实现这个profile的流程图,简略的表示了各个步骤和用到的方法。
和很多开发平台类似,开始使用蓝牙功能的时候,都需要对蓝牙模块进行初始化的工作。
我们在使用微信小程序蓝牙模块前,需要调用wx.openBluetoothAdapter方法来完成这项任务,在这个函数成功返回前,是不能调用任何其他的蓝牙函数的,代码如下。
说明一下,这个方法有三个用作回调函数的参数,但是开发者只需传入自己感兴趣的回调方法就可以了,我们的示例中只传入了success这个回调,用来处理成功打开蓝牙适配器后的操作。
顺利的话,在调用完这两个方法后,我们就能够在wx.onBluetoothDeviceFound传入的回调方法里获得device对象了。
接着我们需要创建连接:wx.createBLEConnection是用来创建连接的方法,参数是扫描出来的device对象里的deviceId。代码如下。
当连接成功后,就需要发现设备的服务了,我们要实现Qpp的通信,所以我们只关心Qpp的service。如下,wx.getBLEDeviceServices获得到了device下可用的服务,我们又通过UUID过滤出了QPP的service。
写到这里,我们基本上把Qpp这个profile用微信小程序就实现了。小程序常见的蓝牙函数基本也都用到了,再开发其他的蓝牙功能也都是同样的道理了。
总体上,微信小程序的蓝牙开发接口设计的中规中矩,很容易理解和上手开发,除此之外,还有微信一个天然的优势我们可以利用起来,就是微信提供了便利的云函数和云存储功能,我们在BLE开发当中的数据很方便就能传送到云端,这对及时准确的分析定位客户使用时遇到的问题有很大的帮助。
温馨提示:有嵌友实践过,在Android系统下没问题,可能是iOS对硬件操作的权限问题,所以iOS下小程序操作Bluetooth不是特别友好!
*请认真填写需求信息,我们会在24小时内与您取得联系。