之前公司项目需求是用Cordova + ionic3 混编开发一个(工程类型的)APP,里面用到了低功耗蓝牙,要在android/ios app端实现蓝牙开锁的功能。emmm~,刚接到需求的我是一脸懵逼,因为蓝牙插件没用过,嗯不多比比了,👇记录一下。
来到ionic官方文档,我们很快发现,蓝牙的插件一共有三个 BLE、BluetoothLE、Bluetooth Serial,因为我是要用的低功耗,所以就是ble这个插件了,并且这个插件安卓跟ios是都能使用的;
该插件支持手机和蓝牙低功耗(BLE)外设之间的通信。该插件为iOS和Android提供了一个简单JavaScript API 官方文档链接https://ionicframework.com/docs/native/ble 里面介绍了如何安装跟实例接口。
过程:1.扫描外围设备2.连接到外围设备3.读取特征的值4.为特征写入新值5.在特征值发生变化时收到通知(这个很重要)
我们给蓝牙发的口令全是十六进制的ascii编码;根据蓝牙设备的文档我们有两个重要的特真服务id需要记住,一个是写指令的特征服务,一个是订阅用的特正服务,一旦你写入口令成功后,就能收到订阅消息
下面继续贴截图吧,不想打字了。。。。
以上就是做的一个测试demo 的部分代码,很乱,由于是demo就没花时间去整理了,最后完成了跟设备的蓝牙交互过程。成功的进行开关锁并读取到蓝牙的相关信息。。最后在总结一下过程:扫描外围设备,链接设备,订阅服务,写入口令,收到订阅消息。。。嗯完美解决!!!