更新记录
v1.0.2(2025-06-05) 下载此版本
v1.0.2
v1.0.1(2025-06-03) 下载此版本
v1.0.1
v1.0.0(2025-06-03) 下载此版本
v1.0.0
查看更多平台兼容性
uni-app(4.35)
Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
---|---|---|---|---|---|---|---|---|
- | √ | × | × | - | - | - | - | - |
微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
---|---|---|---|---|---|---|---|---|---|---|
3.7 | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.35)
Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
---|---|---|---|---|---|
- | - | - | - | - | - |
微信小程序低功耗蓝牙插件
插件简介
- 基于 uni-app、Vue3 和 TypeScript 的轻量级蓝牙组件,支持一次连接,多页面共享使用。
- 无需重复连接蓝牙设备,连接一次即可在所有页面直接调用蓝牙功能。
- 蓝牙开关状态可实时同步到页面。
- 使用 Vue3 的
<script setup lang="ts">
语法糖开发,简洁高效。 - 对于 Vue2 项目,可通过将代码转换为选项式 API 以实现兼容。
使用方法
1. 安装插件
将插件文件复制到 UniApp 项目的 components/
目录中。
2. 引入组件
在需要的页面或组件中引入蓝牙组件:
<template>
<Bluetooth />
</template>
<script setup lang="ts">
import Bluetooth from "@/components/zy-Bluetooth/index.vue";
</script>
或者将其作为页面使用,在 pages.json
中配置路径:
{
"pages": [
{
"path": "pages/zy-Bluetooth/index",
"style": {
"navigationBarTitleText": "蓝牙",
"enablePullDownRefresh": true
}
}
]
}
3. 发送数据示例
<template>
<button :loading="isScan" @click="handleSendData">发送数据</button>
</template>
<script setup lang="ts">
import { computed, unref } from "vue";
import { useSendBLEData } from "../components/zy-Bluetooth/hooks/useBluetooth";
const { hasConnectedDevice, writeBLEData, stopBluetoothScan } =
useSendBLEData();
const isConnectedDevice = computed(() => hasConnectedDevice());
const isScan = ref(false)
const handleSendData = () => {
if (!unref(isConnectedDevice)) {
uni.navigateTo({ url: "/pages/zy-bluetooth/index" });
return;
}
if (isScan.value) return
let first = true;
writeBLEData({
valueChangeCallback: (epc) => {
console.log(epc, "epc--------------");
if (!first) return;
first = false;
// 这里是扫描一次就发送关闭扫描功能,
//如果不需要关闭,则可以删除
stopBluetoothScan({
valueChangeCallback: () => {
isScan.value = false;
},
});
if (!epc) return;
console.log(epc);
},
failCallback: () => {
isScan.value = false;
},
startScanCallback: () => {
isScan.value = true;
},
});
};
</script>
4. 功能说明
- 蓝牙设备扫描:自动发现周围蓝牙设备。
- 设备连接:支持与目标设备建立稳定连接。
- 数据传输:实现蓝牙数据的高效发送与接收。
- 多页面共享:一次连接,全局可用。
注意事项
- 确保设备已开启蓝牙功能。
- 插件需运行在支持蓝牙的设备上。
- 使用 TypeScript 时,请确保项目已正确配置类型支持。
- 目前 useBluetooth 中使用了固定了 SERVICE_UUID、WRITE_UUID、NOTIFY_UUID,逻辑代码已经存在,可自行赋值
结语
本插件旨在简化蓝牙功能开发,提升开发效率。如有建议或问题,欢迎反馈!