- uni-app x官方无内置蓝牙API(文档明确见插件市场),为实现去插件化,工程整体迁移为uni-app vue3(vue/ts),App端内置完整BLE API,标准基座即可运行 - 新建src/BluetoothManager.ts:基于uni内置BLE API(createBLEConnection/notifyBLECharacteristicValueChange/writeBLECharacteristicValue(writeNoResponse)/setBLEMTU/getBLEDeviceRSSI等),保持原插件type约定,页面业务逻辑不变 - 删除uni_modules/android-ble及未使用的lime-*、uni-wifi;保留uni-icons、uni-scss - uts模块全部移植为ts(src/mcm、api、common):UTSJSONObject改Record<string,any>,适配vue3 getStorageSync空值返回空串的差异 - 7个页面uvue转vue:模板不变,显式import ref与生命周期钩子;OTA固件读取由java.io改为plus.io+uni.base64ToArrayBuffer - manifest.json去uni-app-x改app-plus结构,补Android 12+蓝牙权限;删除platformConfig.json;运行改用标准基座
46 lines
1015 B
TypeScript
46 lines
1015 B
TypeScript
let bleName: string | null = null
|
||
let bleMac: string | null = null
|
||
|
||
// 读取本地存储字符串;vue3 的 getStorageSync 无 key 时返回 "",统一转成 null
|
||
function getStorageStr(key: string): string | null {
|
||
const t = uni.getStorageSync(key) as string
|
||
return (t != null && t.length > 0) ? t : null
|
||
}
|
||
|
||
// 保存蓝牙名字
|
||
export function setName(name: string) {
|
||
bleName = name
|
||
uni.setStorageSync('bleName', name)
|
||
}
|
||
|
||
// 读取蓝牙名字
|
||
export function getName(): string | null {
|
||
if (bleName != null) {
|
||
return bleName
|
||
}
|
||
bleName = getStorageStr('bleName')
|
||
return bleName
|
||
}
|
||
|
||
// 保存蓝牙mac
|
||
export function setMac(mac: string) {
|
||
bleMac = mac
|
||
uni.setStorageSync('bleMac', mac)
|
||
}
|
||
|
||
// 读取蓝牙mac
|
||
export function getMac(): string | null {
|
||
if (bleMac != null) {
|
||
return bleMac
|
||
}
|
||
bleMac = getStorageStr('bleMac')
|
||
return bleMac
|
||
}
|
||
|
||
export function clearAllData() {
|
||
bleName = null
|
||
bleMac = null
|
||
uni.removeStorageSync('bleName')
|
||
uni.removeStorageSync('bleMac')
|
||
}
|