From 386e1c8421bea2cffe8e8297f35d2d6219abe098 Mon Sep 17 00:00:00 2001 From: a1461848339 <1461848339@qq.com> Date: Thu, 12 Mar 2026 11:17:18 +0800 Subject: [PATCH] =?UTF-8?q?fix(0.72):=20=E4=BF=AE=E5=A4=8D=E9=A6=96?= =?UTF-8?q?=E6=AC=A1=E6=8B=89=E8=B5=B7=E5=BE=AE=E4=BF=A1=E6=97=A0=E5=9B=9E?= =?UTF-8?q?=E8=B0=83=EF=BC=88=E5=86=B7=E5=90=AF=E5=8A=A8=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E4=B8=A2=E5=A4=B1=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: a1461848339 <1461848339@qq.com> --- .../src/main/ets/WechatLibTurboModule.ets | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/harmony/react_native_wechat_lib/src/main/ets/WechatLibTurboModule.ets b/harmony/react_native_wechat_lib/src/main/ets/WechatLibTurboModule.ets index ae92bec..234660d 100644 --- a/harmony/react_native_wechat_lib/src/main/ets/WechatLibTurboModule.ets +++ b/harmony/react_native_wechat_lib/src/main/ets/WechatLibTurboModule.ets @@ -59,6 +59,7 @@ export class WechatLibTurboModule extends TurboModule implements TM.WechatLibTur private appId: string | null = null; private wxEventHandler = WXEventHandler private static wxApi: wxopensdk.WXApi | null = null; + private static pendingWants: Array = []; private context = getContext(this) as common.UIAbilityContext; lastOAuth: wxopensdk.IDiffDevOAuth | null = null loadStatus: LoadingStatus = LoadingStatus.INIT @@ -91,8 +92,22 @@ export class WechatLibTurboModule extends TurboModule implements TM.WechatLibTur this.wxEventHandler.unregisterOnWXRespCallback(name) } + private static flushPendingWants() { + if (!WechatLibTurboModule.wxApi || WechatLibTurboModule.pendingWants.length === 0) { + return; + } + const wants = WechatLibTurboModule.pendingWants.splice(0, WechatLibTurboModule.pendingWants.length); + wants.forEach((pendingWant: Want) => { + WechatLibTurboModule.wxApi?.handleWant(pendingWant, WXEventHandler); + }); + } + public static handleWant(want: Want) { - WechatLibTurboModule.wxApi?.handleWant(want, WXEventHandler) + if (!WechatLibTurboModule.wxApi) { + WechatLibTurboModule.pendingWants.push(want); + return; + } + WechatLibTurboModule.wxApi.handleWant(want, WXEventHandler) } /** @@ -117,6 +132,7 @@ export class WechatLibTurboModule extends TurboModule implements TM.WechatLibTur try { this.appId = appId; WechatLibTurboModule.wxApi = wxopensdk.WXAPIFactory.createWXAPI(appId); + WechatLibTurboModule.flushPendingWants(); callback(null, true) } catch (err) { const message = err instanceof Error ? err.message : 'Unknown error';