From 5462643ce24f34b1117e8e0d921ea2d3ec7985da Mon Sep 17 00:00:00 2001 From: lanterngamescn Date: Fri, 26 Jun 2026 22:04:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E8=AF=95=EF=BC=9AonConsole=20?= =?UTF-8?q?=E8=A6=86=E7=9B=96=E5=85=A8=E9=83=A8=E4=B8=89=E4=B8=AA=20Web=20?= =?UTF-8?q?=E5=AE=B9=E5=99=A8=EF=BC=8C=E5=85=A8=E9=87=8F=E8=BD=AC=E5=8F=91?= =?UTF-8?q?=20H5=20console?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 大厅/子游戏(BridgeGameContainer)/通用网页(GenericWebContainer) 的 Web 均加 onConsole, 统一 tag=WebConsole,带角色(lobby/subgame/genericweb)+级别+来源文件行,debug 限定。 便于从 H5 console 排查问题(如动画/缩放)。 Co-Authored-By: Claude Opus 4.8 (1M context) --- .../src/main/ets/pages/BridgeGameContainer.ets | 18 ++++++++++++++---- .../src/main/ets/pages/GenericWebContainer.ets | 10 +++++++++- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/entry/src/main/ets/pages/BridgeGameContainer.ets b/entry/src/main/ets/pages/BridgeGameContainer.ets index b70ca62..befe6e3 100644 --- a/entry/src/main/ets/pages/BridgeGameContainer.ets +++ b/entry/src/main/ets/pages/BridgeGameContainer.ets @@ -203,6 +203,15 @@ export struct BridgeGameContainer { return this.params.entryUrl !== '' ? this.params.entryUrl : $rawfile('test_echo.html'); } + /** 转发 H5 console 到 hilog(debug 限定,带角色/级别/来源行,便于排查 H5 报错)。tag=WebConsole。 */ + private logWebConsole(role: string, event: OnConsoleEvent): void { + if (!AppEnv.isDebug()) { + return; + } + const m: ConsoleMessage = event.message; + Logger.tag('WebConsole').i(`[${role}][lv${m.getMessageLevel()}] ${m.getMessage()} @${m.getSourceId()}:${m.getLineNumber()}`); + } + build() { NavDestination() { Stack() { @@ -225,10 +234,7 @@ export struct BridgeGameContainer { } }) .onConsole((event: OnConsoleEvent) => { - // 仅 debug 转发 H5 console 到 hilog,便于排查 H5 问题;release 不打扰 - if (AppEnv.isDebug()) { - Logger.tag('WebConsole').i(event.message.getMessage()); - } + this.logWebConsole('lobby', event); return false; }) .onRenderExited((event: OnRenderExitedEvent) => this.slotL?.onRenderExited(event.renderExitReason)) @@ -250,6 +256,10 @@ export struct BridgeGameContainer { this.slotS?.onFirstProgress(); } }) + .onConsole((event: OnConsoleEvent) => { + this.logWebConsole('subgame', event); + return false; + }) .onRenderExited((event: OnRenderExitedEvent) => this.slotS?.onRenderExited(event.renderExitReason)) } diff --git a/entry/src/main/ets/pages/GenericWebContainer.ets b/entry/src/main/ets/pages/GenericWebContainer.ets index f8d174f..03199ef 100644 --- a/entry/src/main/ets/pages/GenericWebContainer.ets +++ b/entry/src/main/ets/pages/GenericWebContainer.ets @@ -3,7 +3,7 @@ import { common, Want } from '@kit.AbilityKit'; import { window } from '@kit.ArkUI'; import { BusinessError } from '@kit.BasicServicesKit'; import { SettingsProxy } from 'feature_bridge'; -import { Logger } from 'common'; +import { AppEnv, Logger } from 'common'; import { GenericWebParams, GenericWebResult } from '../routes/AppRoutes'; /** @@ -92,6 +92,14 @@ export struct GenericWebContainer { this.controller.runJavaScript(`getWebdata(${this.jsArg(this.params.data)})`); } }) + .onConsole((event: OnConsoleEvent) => { + // 转发 H5 console 到 hilog(debug 限定,tag=WebConsole) + if (AppEnv.isDebug()) { + const m: ConsoleMessage = event.message; + Logger.tag('WebConsole').i(`[genericweb][lv${m.getMessageLevel()}] ${m.getMessage()} @${m.getSourceId()}:${m.getLineNumber()}`); + } + return false; + }) } .hideTitleBar(true) .onBackPressed(() => {