1. 什么是uniapp
Uniapp是一款通过使用Vue.js框架快速搭建跨平台应用的开发工具,它可以同时发布Android、iOS和Web平台,极大地方便了开发者的开发和发布流程。
uni-app的特点:
1. 框架灵活: uni-app支持所有Vue.js生态内部的插件和管理工具,还可以快速生成Vue CLI EU(移动端简化版的Vue CLI);
2. 支持多种端: uni-app一次性编写,多端运行;
3. 跨端组件: uni-app适配了每个平台的差异,甚至可以跨平台对于组件进行一次编写并应用;
4. 开放多端API: uni-app为开发者提供了一系列的统一接口,通过这些接口可以在不同的端适配不同的功能。
2. uniapp是否支持蓝牙功能
uniapp内置的API并不支持直接调用蓝牙功能。不过,我们可以使用uni-app插件市场中的uni-ble插件来连接和操作蓝牙设备。
3. uni-ble蓝牙插件
3.1 集成uni-ble插件
在uni-app应用中集成uni-ble插件并调用相关API来实现蓝牙功能。
安装方法:在项目根目录中使用npm安装uni-ble插件
npm install --save uni-ble
3.2 uni-ble API
接下来,我们来看看uni-ble插件所提供的API以及如何调用这些API。
uni-ble插件的功能列表:
1. 开启蓝牙:
uni.ble.enableBluetooth({
success: function (res) {
console.log('enableBluetooth success', res);
},
fail: function (err) {
console.log('enableBluetooth fail', err);
}
});
2. 关闭蓝牙:
uni.ble.disableBluetooth({
success: function (res) {
console.log('disableBluetooth success', res);
},
fail: function (err) {
console.log('disableBluetooth fail', err);
}
});
3. 获取所有已搜索到的设备列表:
uni.ble.getDevices({
success: function (res) {
console.log('getDevices success', res);
},
fail: function (err) {
console.log('getDevices fail', err);
}
});
4. 根据设备id连接设备:
uni.ble.createBLEConnection({
deviceId: 'device id',
success: function (res) {
console.log('createBLEConnection success', res);
},
fail: function (err) {
console.log('createBLEConnection fail', err);
}
});
5. 根据设备id断开设备:
uni.ble.closeBLEConnection({
deviceId: 'device id',
success: function (res) {
console.log('closeBLEConnection success', res);
},
fail: function (err) {
console.log('closeBLEConnection fail', err);
}
});
6. 获取已连接设备列表:
uni.ble.getConnectedDevices({
success: function (res) {
console.log('getConnectedDevices success', res);
},
fail: function (err) {
console.log('getConnectedDevices fail', err);
}
});
7. 获取服务列表:
uni.ble.getBLEDeviceServices({
deviceId: 'deviceId',
success: function (res) {
console.log('getBLEDeviceServices success', res);
},
fail: function (err) {
console.log('getBLEDeviceServices fail', err);
}
});
8. 获取特征值列表:
uni.ble.getBLEDeviceCharacteristics({
deviceId: 'deviceId',
serviceId: 'serviceId',
success: function (res) {
console.log('getBLEDeviceCharacteristics success', res);
},
fail: function (err) {
console.log('getBLEDeviceCharacteristics fail', err);
}
});
9. 读取特征值:
uni.ble.readBLECharacteristicValue({
deviceId: 'deviceId',
serviceId: 'serviceId',
characteristicId: 'characteristicId',
success: function (res) {
console.log('readBLECharacteristicValue success', res);
},
fail: function (err) {
console.log('readBLECharacteristicValue fail', err);
}
});
10. 监听特征值变化:
uni.ble.notifyBLECharacteristicValueChange({
deviceId: 'deviceId',
serviceId: 'serviceId',
characteristicId: 'characteristicId',
state: true,
success: function (res) {
console.log('notifyBLECharacteristicValueChange success', res);
},
fail: function (err) {
console.log('notifyBLECharacteristicValueChange fail', err);
}
})
11. 发送数据:
uni.ble.writeBLECharacteristicValue({
deviceId: 'deviceId',
serviceId: 'serviceId',
characteristicId: 'characteristicId',
value: ArrayBuffer,
success: function (res) {
console.log('writeBLECharacteristicValue success', res);
},
fail: function (err) {
console.log('writeBLECharacteristicValue fail', err);
}
})
4. 总结
本文介绍了uniapp集成uni-ble蓝牙插件和其中通过uni-ble插件实现基本的蓝牙相关的操作API。
uniapp并不能直接调用蓝牙功能,但是借助uni-ble插件,可以方便地连接和操作蓝牙设备。