You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

136 lines
3.1 KiB

let bluetooth = {}
/**
* 是否授权蓝牙(兼容微信小程序,其他平台未做兼容)
* @date 2022-12-08
*/
bluetooth.isAuth = function() {
return new Promise((resolve, reject) => {
// #ifdef MP-WEIXIN
uni.getSetting({
success(res) {
// 没有蓝牙权限
if (!res.authSetting['scope.bluetooth']) {
// 提前向用户发起授权请求
uni.authorize({
scope: 'scope.bluetooth',
success(res) {
console.log('--请求权限成功--', res)
resolve(true)
},
fail(res) {
console.log('--请求权限失败--', res)
uni.showModal({
title: "您已拒绝蓝牙权限",
content: "是否进入权限管理,调整授权?",
success(res) {
if (res.confirm) {
// 打开设置界面,引导用户开启授权
uni.openSetting({
success(res) {
reject(false)
}
})
} else {
reject(false)
}
}
})
},
complete(res) {
// console.log('authorizeComplete', res)
}
})
} else {
resolve(true)
}
}
})
// #endif
})
}
/**
* 初始化蓝牙
* @date 2022-12-08
*/
bluetooth.init = function() {
return new Promise((resolve, reject) => {
// 初始化蓝牙
uni.openBluetoothAdapter({
success(res) {
console.log('--初始化蓝牙成功--', res)
resolve(res)
},
fail(err) {
console.log('--初始化蓝牙失败--', err)
reject(err)
}
})
})
}
/**
* 开始搜寻附近的蓝牙外围设备
* @param {array} services 要搜索的蓝牙设备主 service 的 uuid 列表
* @date 2022-12-08
*/
bluetooth.startDiscovery = function(services = []) {
return new Promise((resolve, reject) => {
// 开始搜寻附近的蓝牙外围设备
uni.startBluetoothDevicesDiscovery({
services: services,
success(res) {
console.log('--开始搜寻附近的蓝牙外围设备成功--', res)
resolve(res)
},
fail(err) {
console.log('--开始搜寻附近的蓝牙外围设备失败--', err)
reject(err)
}
})
})
}
/**
* 停止搜寻附近的蓝牙外围设备
* @date 2022-12-08
*/
bluetooth.stopDiscovery = function() {
return new Promise((resolve, reject) => {
// 停止搜寻附近的蓝牙外围设备
uni.stopBluetoothDevicesDiscovery({
success(res) {
console.log('--停止搜寻附近的蓝牙外围设备成功--', res)
resolve(res)
},
fail(err) {
console.log('--停止搜寻附近的蓝牙外围设备失败--', err)
reject(err)
}
})
})
}
/**
* 获取在蓝牙模块生效期间所有已发现的蓝牙设备
* @date 2022-12-08
*/
bluetooth.getDevices = function() {
return new Promise((resolve, reject) => {
// 获取在蓝牙模块生效期间所有已发现的蓝牙设备
uni.getBluetoothDevices({
success(res) {
console.log('--获取在蓝牙模块生效期间所有已发现的蓝牙设备成功--', res)
resolve(res)
},
fail(err) {
console.log('--获取在蓝牙模块生效期间所有已发现的蓝牙设备失败--', err)
reject(err)
}
})
})
}
export default bluetooth