fix(equipment): 回前台自动重连后同步设备连接状态
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
e95d28a87b
commit
f3f4d56ceb
@@ -53,6 +53,7 @@ interface DeviceItem {
|
||||
let unsubDevicesList: (() => void) | null = null
|
||||
let unsubConnect: (() => void) | null = null
|
||||
let unsubDisconnected: (() => void) | null = null
|
||||
let unsubDeviceConnect: (() => void) | null = null
|
||||
let scanTimer: number | null = null
|
||||
|
||||
Page({
|
||||
@@ -68,18 +69,23 @@ Page({
|
||||
this.setData({ operationsEngineer: getApp<IAppOption>().globalData.operationsEngineer ?? false })
|
||||
this.loadDevices()
|
||||
this._subscribeDisconnected()
|
||||
this._subscribeDeviceConnect()
|
||||
},
|
||||
|
||||
onHide() {
|
||||
leFuService.stopScan()
|
||||
unsubDisconnected?.()
|
||||
unsubDisconnected = null
|
||||
unsubDeviceConnect?.()
|
||||
unsubDeviceConnect = null
|
||||
},
|
||||
|
||||
onUnload() {
|
||||
leFuService.stopScan()
|
||||
unsubDisconnected?.()
|
||||
unsubDisconnected = null
|
||||
unsubDeviceConnect?.()
|
||||
unsubDeviceConnect = null
|
||||
unsubDevicesList?.()
|
||||
unsubDevicesList = null
|
||||
unsubConnect?.()
|
||||
@@ -97,6 +103,17 @@ Page({
|
||||
})
|
||||
},
|
||||
|
||||
/** 订阅连接成功事件:回前台自动重连等场景下,同步页面状态为已连接 */
|
||||
_subscribeDeviceConnect() {
|
||||
unsubDeviceConnect?.()
|
||||
unsubDeviceConnect = leFuService.onDeviceConnect(() => {
|
||||
const deviceId = leFuService.lastRawDevice?.deviceId ?? ''
|
||||
if (deviceId) {
|
||||
this._updateStatus(deviceId, true)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
/** 拉取体重设备列表 */
|
||||
async loadDevices() {
|
||||
const raw = wx.getStorageSync('userInfo') as UserInfo | null
|
||||
@@ -203,7 +220,6 @@ Page({
|
||||
unsubConnect = null
|
||||
wx.hideLoading()
|
||||
wx.setStorageSync('connectDeviceInfo', matched.raw)
|
||||
this._updateStatus(targetDeviceId, true)
|
||||
})
|
||||
})
|
||||
leFuService.startScan()
|
||||
|
||||
Reference in New Issue
Block a user