Improve heart rate device reconnect flow
This commit is contained in:
@@ -31,9 +31,10 @@ type MapPageData = MapEngineViewState & {
|
||||
showRightButtonGroups: boolean
|
||||
showBottomDebugButton: boolean
|
||||
}
|
||||
const INTERNAL_BUILD_VERSION = 'map-build-175'
|
||||
const INTERNAL_BUILD_VERSION = 'map-build-195'
|
||||
const REMOTE_GAME_CONFIG_URL = 'https://oss-mbh5.colormaprun.com/wxmini/test/game.json'
|
||||
let mapEngine: MapEngine | null = null
|
||||
let stageCanvasAttached = false
|
||||
function buildSideButtonVisibility(mode: SideButtonMode) {
|
||||
return {
|
||||
sideButtonMode: mode,
|
||||
@@ -114,6 +115,8 @@ Page({
|
||||
mockBridgeUrlDraft: 'wss://gs.gotomars.xyz/mock-gps',
|
||||
mockCoordText: '--',
|
||||
mockSpeedText: '--',
|
||||
heartRateScanText: '未扫描',
|
||||
heartRateDiscoveredDevices: [],
|
||||
panelSpeedValueText: '0',
|
||||
panelTelemetryTone: 'blue',
|
||||
panelHeartRateZoneNameText: '--',
|
||||
@@ -150,7 +153,7 @@ Page({
|
||||
compassTicks: buildCompassTicks(),
|
||||
compassLabels: buildCompassLabels(),
|
||||
...buildSideButtonVisibility('left'),
|
||||
} as MapPageData,
|
||||
} as unknown as MapPageData,
|
||||
|
||||
onLoad() {
|
||||
const systemInfo = wx.getSystemInfoSync()
|
||||
@@ -239,15 +242,29 @@ Page({
|
||||
},
|
||||
|
||||
onReady() {
|
||||
stageCanvasAttached = false
|
||||
this.measureStageAndCanvas()
|
||||
this.loadMapConfigFromRemote()
|
||||
},
|
||||
|
||||
onShow() {
|
||||
if (mapEngine) {
|
||||
mapEngine.handleAppShow()
|
||||
}
|
||||
},
|
||||
|
||||
onHide() {
|
||||
if (mapEngine) {
|
||||
mapEngine.handleAppHide()
|
||||
}
|
||||
},
|
||||
|
||||
onUnload() {
|
||||
if (mapEngine) {
|
||||
mapEngine.destroy()
|
||||
mapEngine = null
|
||||
}
|
||||
stageCanvasAttached = false
|
||||
},
|
||||
|
||||
loadMapConfigFromRemote() {
|
||||
@@ -295,6 +312,10 @@ Page({
|
||||
|
||||
currentEngine.setStage(rect)
|
||||
|
||||
if (stageCanvasAttached) {
|
||||
return
|
||||
}
|
||||
|
||||
const canvasQuery = wx.createSelectorQuery().in(page)
|
||||
canvasQuery.select('#mapCanvas').fields({ node: true, size: true })
|
||||
canvasQuery.select('#routeLabelCanvas').fields({ node: true, size: true })
|
||||
@@ -317,6 +338,7 @@ Page({
|
||||
dpr,
|
||||
labelCanvasRef && labelCanvasRef.node ? labelCanvasRef.node : undefined,
|
||||
)
|
||||
stageCanvasAttached = true
|
||||
} catch (error) {
|
||||
page.setData({
|
||||
statusText: `WebGL 鍒濆鍖栧け璐?(${INTERNAL_BUILD_VERSION})`,
|
||||
@@ -453,11 +475,23 @@ Page({
|
||||
}
|
||||
},
|
||||
|
||||
handleDisconnectHeartRate() {
|
||||
if (mapEngine) {
|
||||
mapEngine.handleDisconnectHeartRate()
|
||||
}
|
||||
},
|
||||
handleDisconnectHeartRate() {
|
||||
if (mapEngine) {
|
||||
mapEngine.handleDisconnectHeartRate()
|
||||
}
|
||||
},
|
||||
|
||||
handleConnectHeartRateDevice(event: WechatMiniprogram.BaseEvent<{ deviceId?: string }>) {
|
||||
if (mapEngine && event.currentTarget && event.currentTarget.dataset && event.currentTarget.dataset.deviceId) {
|
||||
mapEngine.handleConnectHeartRateDevice(event.currentTarget.dataset.deviceId)
|
||||
}
|
||||
},
|
||||
|
||||
handleClearPreferredHeartRateDevice() {
|
||||
if (mapEngine) {
|
||||
mapEngine.handleClearPreferredHeartRateDevice()
|
||||
}
|
||||
},
|
||||
|
||||
handleDebugHeartRateBlue() {
|
||||
if (mapEngine) {
|
||||
|
||||
Reference in New Issue
Block a user