From 075f13e2f8c792af6d4f2afdc4832e9fe34957f7 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Fri, 27 Feb 2026 17:02:50 +0800
Subject: [PATCH] feat:关闭弹框

---
 applications/mobile-web-view/src/appPages/voiceCallDetail/index.vue |   20 +++++++++-----------
 uniapps/work-app/src/hooks/useGlobalWS.js                           |    1 -
 uniapps/work-app/src/subPackages/voiceCallDetail/index.vue          |   10 +++++++++-
 3 files changed, 18 insertions(+), 13 deletions(-)

diff --git a/applications/mobile-web-view/src/appPages/voiceCallDetail/index.vue b/applications/mobile-web-view/src/appPages/voiceCallDetail/index.vue
index 9387b7c..d55afc5 100644
--- a/applications/mobile-web-view/src/appPages/voiceCallDetail/index.vue
+++ b/applications/mobile-web-view/src/appPages/voiceCallDetail/index.vue
@@ -448,9 +448,7 @@
 	send('accept', incomingFrom, null)
 	log('✅ 已点击接听,发送 accept 给', incomingFrom)
 
-	// 停止铃声
-// 	const transmitData = { data: { type: 'stopVoice' } }
-// uni.postMessage(transmitData)
+
 	state.value = 'calling'
 
 	// 如果 offer 已经提前到达(我们暂存了),立刻 answer
@@ -458,6 +456,9 @@
 		answerOffer(lastOfferSdp, incomingFrom)
 		lastOfferSdp = null
 	}
+	// 停止
+	const transmitData = { data: { sign:'closeBox' } }
+	uni.postMessage(transmitData)
 }
 
 function rejectCall() {
@@ -466,11 +467,8 @@
 	// 你后端没有 reject,用 busy 表示拒绝/不可接听
 	send('busy', incomingFrom, null)
 	log('❌ 已拒绝来电,发送 busy 给', incomingFrom)
-	const transmitData = { data: { type: 'hangupVoice' } }
+	const transmitData = { data: { type: 'hangupVoice',sign:'closeBox'  } }
 uni.postMessage(transmitData)
-	// 停止铃声
-// 	const transmitData = { data: { type: 'stopVoice' } }
-// uni.postMessage(transmitData)
 
 	incomingFrom = null
 	acceptedByMe = false
@@ -579,7 +577,8 @@
 		// 对方挂断:显示提示,延迟10秒跳转
 		callEnded.value = true
 		endMessage.value = '对方已挂断'
-
+		const transmitData = { data: { type: 'hangupVoice',sign:'closeBox'  } }
+		uni.postMessage(transmitData)
 		// 延迟5秒后跳转页面
 		endTimer.value = setTimeout(() => {
 			// 返回上一页(uni-app的语音通话列表页面)
@@ -588,11 +587,10 @@
 			} else {
 				log('❌ uni对象不存在,无法返回上一页')
 			}
-			const transmitData = { data: { type: 'hangupVoice' } }
-			uni.postMessage(transmitData)
+
 			// 重置通话结束状态
 			callEnded.value = false
-		}, 3000)
+		}, 2000)
 	}
 }
 
diff --git a/uniapps/work-app/src/hooks/useGlobalWS.js b/uniapps/work-app/src/hooks/useGlobalWS.js
index bdc3c91..28cf75b 100644
--- a/uniapps/work-app/src/hooks/useGlobalWS.js
+++ b/uniapps/work-app/src/hooks/useGlobalWS.js
@@ -21,7 +21,6 @@
       console.log('📨 useGlobalWS 收到 WebView 消息:', data)
       // 处理挂断消息
       if (data?.type === 'hangupVoice') {
-        console.log('📞 收到挂断消息')
         initWS()
       }
     });
diff --git a/uniapps/work-app/src/subPackages/voiceCallDetail/index.vue b/uniapps/work-app/src/subPackages/voiceCallDetail/index.vue
index 83a7dbd..588e607 100644
--- a/uniapps/work-app/src/subPackages/voiceCallDetail/index.vue
+++ b/uniapps/work-app/src/subPackages/voiceCallDetail/index.vue
@@ -17,7 +17,7 @@
 const userParams = userStore?.userInfo ? JSON.stringify(userStore.userInfo) : '{}'
 const sWebViewRef = ref(null);
 const viewUrl = ref("");
-
+const typeSign = ref('')
 // #ifdef APP-PLUS
 /**
  * 请求 Android 麦克风权限
@@ -80,6 +80,14 @@
 });
 
 function onPostMessage(data) {
+typeSign.value = data?.sign || ''
+if(typeSign.value === 'closeBox'){
+	setTimeout(() => {
+	// 关闭弹窗
+	cancelIncomingCallNotification()
+	}, 1000)
+
+}
 	// 将WebView消息传递给全局WebSocket处理
 	if (typeof uni !== 'undefined' && uni.$emit) {
 		uni.$emit('webViewMessage', data);

--
Gitblit v1.9.3