更新记录

1.0.6(2025-01-22)

  1. 修复iOS回调两次bug
  2. 增加isEnable(获取蓝牙模块是否可用)接口

1.0.5(2025-01-20)

  1. 增加ios部分兼容
  2. init 方法名与 ios swift 关键词 冲突 修改为 moduleInit
  3. 修改 manufacturerSpecificData 为字节数组类型

1.0.4(2025-01-08)

通过address连接ble设备

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.91,Android:5.0,iOS:10,HarmonyNext:不支持 × × × × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
× × × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari
× × × × × × × × ×

需要制作自定义调试基座才可以调试

HBuilder X => 运行 => 运行到手机或模拟器 => 制作自定义调试基座

初始化模块

原生模块使用方式(uniapp 已弃用云端插件,本地仍可使用)

// 导入模块
var vinBluetooth = uni.requireNativePlugin("VinBluetooth");
// 模块初始化 
vinBluetooth.moduleInit({},(res)=>{
    // res.code:代表结果 0成功
    // res.msg:回调结果信息
    // res.data:不同api,不同数据
});

UTS模块使用方式

// 导入模块
import * as vinBluetooth from '@/uni_modules/vin-bluetooth'
// 模块初始化 
vinBluetooth.moduleInit({},(res)=>{
    // res.code:代表结果 0成功
    // res.msg:回调结果信息
    // res.data:不同api,不同数据
});

TS 增加代码提示

// 如使用ts可安装ts声明依赖
pnpm i vin-uni-plugin-types -D
// 然后使用
import type { VinBluetooth } from 'vin-uni-plugin-types'
var tsVinBluetooth = vinBluetooth as VinBluetooth;

API列表

:回调都会包含一个对象

code:代表结果 0成功

msg:回调结果信息

data:不同api,不同数据

初始化蓝牙模块

vinBluetooth.moduleInit({
  // 可选参数 是否在扫描时过滤重复的设备(重复设备将不在通过回调传输)默认:true 可选参数 (ios无效)
  isFilterScanRepeat:true
},(res)=>{
  console.log(res)
});

释放蓝牙模块 (在程序退出,或用不到模块时)

vinBluetooth.destroy((res)=>{
  console.log(res)
});

获取蓝牙模块是否可用(获取蓝牙开关状态)

vinBluetooth.isEnable((res)=>{
  console.log(res)
});

打开蓝牙适配器

vinBluetooth.open((res)=>{
  console.log(res)
});

关闭蓝牙适配器

vinBluetooth.close((res)=>{
  console.log(res)
});

开始扫描经典蓝牙设备(ios暂不支持)

vinBluetooth.startScan({
  // 可选参数 超时时间,单位毫秒 默认:10000
  timeout:10000
},(res)=>{
  console.log(res)
});

停止扫描经典蓝牙设备(ios暂不支持)

vinBluetooth.stopScan((res)=>{
  console.log(res)
});

获取已配对的经典蓝牙设备(ios暂不支持)

vinBluetooth.bondedDevices((res)=>{
  console.log(res)
  // res.data 为设备信息列表
  // 如:使用ts可 import { VinBluetoothDevice } from '@/uni_modules/vin-bluetooth'
  // let tempData = res.data as VinBluetoothDevice[];
});

配对经典蓝牙设备(ios暂不支持)

vinBluetooth.pairDevice("设备地址",(res)=>{
  console.log(res)
});

取消配对经典蓝牙设备(ios暂不支持)

vinBluetooth.unPairDevice("设备地址",(res)=>{
  console.log(res)
});

开始扫描低功耗蓝牙设备

vinBluetooth.startScanBle({
  // 可选参数 超时时间,单位毫秒 默认:10000
  timeout:10000
},(res)=>{
  console.log(res)
});

停止扫描低功耗蓝牙设备

vinBluetooth.stopScanBle((res)=>{
  console.log(res)
});

连接低功耗蓝牙设备

vinBluetooth.connectBle({
  // 必填参数 设备地址
  address:""
},(res)=>{
  console.log(res)
});

断开低功耗蓝牙设备

vinBluetooth.disconnectBle("设备地址",(res)=>{
  console.log(res)
});

获取已连接的低功耗蓝牙设备

vinBluetooth.connectingBleDevices((res)=>{
  console.log(res)
  // res.data 为设备信息列表
  // 如:使用ts可 import { VinBluetoothDevice } from '@/uni_modules/vin-bluetooth'
  // let tempData = res.data as VinBluetoothDevice[];
});

设置低功耗蓝牙设备的MTU(ios暂不支持)

vinBluetooth.setMtu("设备地址","mtu值",(res)=>{
  console.log(res)
});

发送字节数据到低功耗蓝牙设备

vinBluetooth.sendBleByteData("设备地址","服务uuid","特征uuid","字节数组 number[]",(res)=>{
  console.log(res)
});

发送base64数据到低功耗蓝牙设备

vinBluetooth.sendBleByteData("设备地址","服务uuid","特征uuid","base64数据",(res)=>{
  console.log(res)
});

发送16进制数据到低功耗蓝牙设备

vinBluetooth.sendBleByteData("设备地址","服务uuid","特征uuid","16进制(hex)数据",(res)=>{
  console.log(res)
});

发送字符串数据到低功耗蓝牙设备

vinBluetooth.sendBleStrData("设备地址","服务uuid","特征uuid","字符串数据",(res)=>{
  console.log(res)
});

发送数据到低功耗蓝牙设备

vinBluetooth.sendBleByteData({
  // 设备地址
  address:"",
  // 服务uuid
  serviceUuid:"",
  // 特征uuid
  characteristicUuid:"",
  // 发送的类型 0:base64 1:16进制 2:字节数组 3:字符串
  type:0,
  // 发送的数据
  data:any
},(res)=>{
  console.log(res)
});

监听低功耗蓝牙设备的数据

vinBluetooth.listenBleData({
  // 设备地址
  address:"",
  // 服务uuid
  serviceUuid:"",
  // 特征uuid
  characteristicUuid:"",
  // 可选参数 通信uuid,默认取特征下的第一个
  descriptorUuid:""
},(res)=>{
  console.log(res)
});

注册蓝牙模块通知事件

vinBluetooth.register("事件名称",(res)=>{
  console.log(res)
},(res)=>{});
// 参数2:注册的事件回调
// 参数3:注册结果,成功|失败

可注册的事件包含:

  • error:所有的异常错误,都将通过此事件通知
  • opening:蓝牙正在打开事件
  • open:蓝牙打开成功事件
  • closing:蓝牙正在关闭事件
  • close:蓝牙关闭成功事件
  • startScan:开始扫描经典蓝牙事件(ios暂不支持)
  • scan:扫描到经典蓝牙事件,将通过此事件进行通知设备信息 (如使用ts 可导入 VinBluetoothDevice)(ios暂不支持)
  • stopScan:停止扫描经典蓝牙事件(ios暂不支持)
  • bonding:经典蓝牙配对中事件(ios暂不支持)
  • bonded:经典蓝牙配对成功事件(ios暂不支持)
  • rejectBonded:经典蓝牙拒绝配对事件(ios暂不支持)
  • unBonded:经典蓝牙取消配对事件(ios暂不支持)
  • startBleScan:开始扫描Ble蓝牙事件
  • bleScan:扫描到Ble蓝牙事件,将通过此事件进行通知设备信息 (如使用ts 可导入 VinBluetoothDevice)
  • stopBleScan:停止扫描Ble蓝牙事件
  • bleConnecting:Ble蓝牙连接中事件(ios暂不支持)
  • bleConnect:Ble蓝牙连接成功事件
  • bleDisconnecting:Ble蓝牙断开中事件(ios暂不支持)
  • bleDisconnect:Ble蓝牙断开连接成功事件
  • bleMtuChanged:Ble蓝牙设置Mtu结果事件(ios暂不支持)
  • bleServicesDiscovered:Ble蓝牙服务发现事件
  • bleReceiveData:Ble蓝牙接受数据事件

:bleConnecting,bleConnect,bleDisconnecting,bleDisconnect,bleMtuChanged,bleServicesDiscovered,bleReceiveData事件均返回所有事件,如需订阅某设备的事件可在后面组品设备地址,

如:bleConnectingA4:90:CE:12:92:3D :如使用uts方式,需要使用 registerOtherEvent 来注册事件

取消注册蓝牙模块通知事件

vinBluetooth.unRegister("事件名称",(res)=>{
  console.log(res)
});

文档教程

最新文档请参考链接

售前/售后咨询

  • 购买插件前请先试用,试用通过再购买。
  • 在使用/试用过程中遇到任何问题,想法以及需求,可随时与作者联系,作者将全力协助你使用本插件。
  • 关于售后,在购买源码授权版后,可联系作者获取全部源码!

隐私、权限声明

1. 本插件需要申请的系统权限列表:

<uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问