本文讲解cordova-plugin-ble-central插件以及如何在Wex5中使用该插件。
1.插件概述
低功耗蓝牙插件,将手机作为低功耗蓝牙中心设备,提供手机设备与低功耗蓝牙外设信息传输的能力。
注意:
1.使用该插件之前请尽量了解一些关于蓝牙开发的技术知识,方便对插件能力的理解。
2.要使用此插件,手机端蓝牙必须为低功耗蓝牙,而且需要一个低功耗蓝牙外设与其进行交互。
2.插件使用
首先,我们需要在自己的js文件中引入该插件,即“require(“cordova!cordova-plugin-ble-central”);”然后即可在js中调用相关API。
- ble.scan
- ble.startScan
- ble.stopScan
- ble.connect
- ble.disconnect
- ble.read
- ble.write
- ble.startNotification
- ble.stopNotification
- ble.isEnabled
- ble.isConnected
- ble.showBluetoothSettings
- ble.enable
scan
扫描发现BLE外设
ble.scan(services, seconds, success, failure);
此方法可以扫描发现周边的BLE外设。每发现一个可用的外设就会调用该方法的成功回调,并且返回外设的简略信息,扫描会在数秒内停止。返回值类型如下:
{
“name”: “TI SensorTag”,
“id”: “BD922605-1B07-4D55-8D09-B66653E51BBA”,
“rssi”: -79,
“advertising”: /* ArrayBuffer or map */
}
“advertising”是外设的广播信息,Android与iOS的数据类型稍微有点差别。在Android平台,广播信息可以直接显示,但是iOS上不允许直接访问,所以返回一个字典。无论iOS平台还是Android平台,广播信息都包含有发射的信息,以及扫描响应信息。
Android
{
“name”: “demo”,
“id”: “00:1A:7D:DA:71:13”,
“advertising”: ArrayBuffer,
“rssi”: -37
}
iOS
{
“name”: “demo”,
“id”: “D8479A4F-7517-BCD3-91B5-3302B2F81802”,
“advertising”: {
“kCBAdvDataChannel”: 37,
“kCBAdvDataServiceData”: {
“FED8”: {
“byteLength”: 7 // data not shown
}
},
“kCBAdvDataLocalName”: “demo”,
“kCBAdvDataServiceUUIDs”: “kCBAdvDataManufacturerData”: { “byteLength”: 7 // data not shown }, “kCBAdvDataTxPowerLevel”: 32, “kCBAdvDataIsConnectable”: true }, “rssi”: -53 } 持续扫描周边的设备 ble.startScan(services, success, failure); 每发现一个可用的蓝牙外设,就会成功回调,直到stopScan接口被调用。参数不再详细说明。 停止扫描外设 ble.stopScan(success, failure); 连接到一个外设。 ble.connect(device_id, connectSuccess, connectFailure); 该方法可以使手机设备连接到一个可用的外设,回调会持续运行。当成功连接后就会调用成功回调。服务信息还有特征信息会在成功回调中的返回值对象中。当连接失败,或者断开连接的时候,会调用失败回调。同样,外设对象信息会被返回。 注意:当连接断开的时候,会触发失败回调。 断开连接 ble.disconnect(device_id, [success], [failure]); 读取特征信息的值。 ble.read(device_id, service_uuid, characteristic_uuid, success, failure); 返回一个ArrayBuffer的原始数据。 往特征信息中写入数据 ble.write(device_id, service_uuid, characteristic_uuid, data, success, failure); 注意:data为ArrayBuffer 监听特征信息,当特征值改变后会有通知。 ble.startNotification(device_id, service_uuid, characteristic_uuid, success, failure); 每当特征值改变就会调用成功回调。 去除特征信息的监听。 ble.stopNotification(device_id, service_uuid, characteristic_uuid, success, failure); 返回当前连接状态 ble.isConnected(device_id, success, failure); 判断蓝牙是否可用。 ble.isEnabled(success, failure); 打开设备蓝牙设置,只支持Android。 ble.showBluetoothSettings(success, failure); 启用设备蓝牙,只支持Android。 ble.enable(success, failure); 另:此插件来源于GitHub,用户如想使用最新版插件可从上面获取,但是新版插件对接口有一些调整,详情参考作者文档,本文不做详细说明。 参数描述:
startScan
stopScan
参数描述:
connect
参数描述:
disconnect
read
参数说明:
write
startNotification
stopNotification
isConnected
isEnabled
showBluetoothSettings
enable
评一波