更新记录

1.0.4(2025-03-21)

修复IOS 添加service 重复问题

1.0.3(2025-03-21)

修复IOS 添加重复service问题

1.0.2(2025-03-20)

修复Android bug

查看更多

平台兼容性

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

支持平台:IOS,Android 权限:

Android
<!-- 蓝牙权限 -->
    <uses-permission android:name="android.permission.BLUETOOTH"/>
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    <!-- Android 12及以上版本需要的蓝牙权限 -->
    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
    <!-- 定位权限 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

    <uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/>
IOS
<key>NSBluetoothAlwaysUsageDescription</key>
    <string>App需要使用蓝牙进行设备连接</string>
    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>App需要使用蓝牙进行设备连接</string>
    <!-- 定位权限 -->
    <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
    <string>App需要使用定位来搜索附近的蓝牙设备</string>
    <key>NSLocationAlwaysUsageDescription</key>
    <string>App需要使用定位来搜索附近的蓝牙设备</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>App需要使用定位来搜索附近的蓝牙设备</string>
    <!-- 后台蓝牙权限 -->
    <key>UIBackgroundModes</key>

导入插件

import { BlePeripheralModule } from '@/uni_modules/qy-bleperipheral';

使用插件(详情请参考demo)

const bleModule = new BlePeripheralModule()       // 创建插件
bleModule.initWithCallback({                      // 初始化插件
        onBluetoothStateChange(enabled : boolean) {  // 蓝牙初始化状态
                isBluetoothOn.value = enabled
                console.log('蓝牙状态:', enabled)
        },
        onAdvertisingStateChange(advertising : boolean) {  // 广播状态
                isAdvertising.value = advertising
                console.log('广播状态:', advertising)
        },
        onConnectionStateChange(id : string, status : boolean) { // id 设备ID, status 连接状态(IOS 中无法监听)
                console.log('连接状态:', id, status)
        },
        onSubscribed(status : boolean) { // 订阅状态
                console.log('订阅状态:', status)
        },
        onWrite(data : number[]) {       // 中心设备发来的数据回调
                console.log('onWritestr:', data);
                // const packet = new Uint8Array(data);
                // let str2 = String.fromCharCode.apply(null, packet);
        },
        onError: (error : number) => {  // 错误回调
                console.log('错误代码:', error)
        },
        initCharacteristic: [{         // 初始化服务和特征值
                serviceUUID: SERVICE_UUID,
                characteristicUUIDs: [CHAR_UUID]
        }]
})

bleModule.startAdvertising([0x01, 0x02, 0x03], 'mybleConfig') // 发射广播(广播数据,广播名称)

bleModule.stopAdvertising()  // 停止广播

bleModule.notifyValue(SERVICE_UUID, CHAR_UUID, paramsData) // notify数据()

注意事项(在页面生命周期中最好调用一下如下代码,确定蓝牙是否可用,成功后再初始化,避免出错)

uni.openBluetoothAdapter({
    success(res) {
            console.log(res)
    }
})

隐私、权限声明

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

Android <!-- 蓝牙权限 --> <uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> <!-- Android 12及以上版本需要的蓝牙权限 --> <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> <!-- 定位权限 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/> IOS <key>NSBluetoothAlwaysUsageDescription</key> <string>App需要使用蓝牙进行设备连接</string> <key>NSBluetoothPeripheralUsageDescription</key> <string>App需要使用蓝牙进行设备连接</string> <!-- 定位权限 --> <key>NSLocationAlwaysAndWhenInUseUsageDescription</key> <string>App需要使用定位来搜索附近的蓝牙设备</string> <key>NSLocationAlwaysUsageDescription</key> <string>App需要使用定位来搜索附近的蓝牙设备</string> <key>NSLocationWhenInUseUsageDescription</key> <string>App需要使用定位来搜索附近的蓝牙设备</string> <!-- 后台蓝牙权限 --> <key>UIBackgroundModes</key>

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

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

暂无用户评论。

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