diff --git a/frontend/src/pages/cloud-law/video-call.vue b/frontend/src/pages/cloud-law/video-call.vue index f9a5a7d..82b3c21 100644 --- a/frontend/src/pages/cloud-law/video-call.vue +++ b/frontend/src/pages/cloud-law/video-call.vue @@ -640,7 +640,17 @@ const scheduleEndedRedirect = () => { } const goToConsultDetail = () => { - notifyCloudLawEnd().finally(() => notifyMiniProgramCallEndedOnce()) + // 结束页按钮必须强制重试,不能走 notifyMiniProgramCallEndedOnce()。 + // 前面自动跳转可能已经把 miniProgramEndNotified / miniProgramRedirected 置为 true, + // 但实际 wx.miniProgram 导航可能静默失败,导致用户点「查看咨询详情」也被 once guard 拦掉。 + miniProgramEndNotified = false + miniProgramRedirected = false + console.log('[CloudLawVideoCall] 查看咨询详情 CLICK force redirect', { + callId: callId.value, + consultId: consultId.value, + returnUrl: buildMiniProgramReturnUrl() + }) + notifyCloudLawEnd().finally(() => notifyMiniProgramCallEnded()) } const pollCommandsOnce = async () => { diff --git a/frontend/src/utils/cloudLawVoiceCall.js b/frontend/src/utils/cloudLawVoiceCall.js index 7780ce2..c5add60 100644 --- a/frontend/src/utils/cloudLawVoiceCall.js +++ b/frontend/src/utils/cloudLawVoiceCall.js @@ -137,11 +137,6 @@ export function notifyNativeMiniProgramHangup() { return false } try { - const mp = window.wx && window.wx.miniProgram - if (!mp) { - console.warn('[cloudLawVoiceCall] bridge skip: window.wx.miniProgram 不存在(jweixin 未加载/不在小程序 web-view 内)') - return false - } const href = String(window.location.href || '') if (href.includes(`${CLOUD_LAW_HANGUP_QUERY}=1`)) { console.log('[cloudLawVoiceCall] bridge: URL 已含 cloudLawHangup=1,跳过重复重载')