| | |
| | | export function useGlobalWS() { |
| | | const userStore = useUserStore(); |
| | | const appStore = useAppStore(); |
| | | |
| | | |
| | | // 设置默认用户ID为3 |
| | | const defaultUserId = '3'; |
| | | // WebSocket基础URL |
| | |
| | | from: payload.from, |
| | | type: 'incoming' |
| | | }; |
| | | |
| | | |
| | | // 转义参数以便在URL中传递 |
| | | const encodedParams = encodeURIComponent(JSON.stringify(callParams)); |
| | | |
| | | |
| | | // 跳转到mobile-web-view应用中的语音通话页面 |
| | | const voiceCallUrl = `http://localhost:9527/work-app/#/subPackages/voiceCallDetail/index?params=${encodedParams}`; |
| | | |
| | | const voiceCallUrl = `http://localhost:9527/work-app/#/subPackages/voiceCallDetail/index?voiceparams=${encodedParams}`; |
| | | |
| | | console.log('🔗 准备导航到:', voiceCallUrl) |
| | | |
| | | try { |
| | | // 优先使用uni-app的导航API(适用于uni-app环境) |
| | | if (typeof uni !== 'undefined' && uni.navigateTo) { |
| | | console.log('使用uni-app导航API跳转到语音通话页面'); |
| | | |
| | | |
| | | // 检查是否是跳转到应用内页面 |
| | | if (voiceCallUrl.includes('/subPackages/voiceCallDetail/')) { |
| | | // 应用内页面跳转 |
| | |
| | | // 外部页面跳转 |
| | | fallbackToExternalNavigation(); |
| | | } |
| | | } |
| | | } |
| | | // 否则尝试使用window.location跳转(适用于Web环境) |
| | | else if (typeof window !== 'undefined' && window.location) { |
| | | console.log('使用window.location跳转到语音通话页面'); |
| | |
| | | // 尝试使用外部跳转作为最后的补救措施 |
| | | fallbackToExternalNavigation(); |
| | | } |
| | | |
| | | |
| | | // 外部页面跳转的回调函数 |
| | | function fallbackToExternalNavigation() { |
| | | console.log('尝试使用外部导航跳转到语音通话页面'); |
| | |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | // 或者使用plus.runtime.openURL(适用于App环境) |
| | | else if (typeof plus !== 'undefined' && plus.runtime) { |
| | | plus.runtime.openURL(voiceCallUrl); |
| | |
| | | // 使用默认用户ID初始化WebSocket连接 |
| | | websocketService.init(defaultUserId, WS_BASE); |
| | | console.log('🌐 全局WebSocket初始化成功,默认用户ID:', defaultUserId); |
| | | |
| | | |
| | | // 设置全局消息处理回调 |
| | | websocketService.setOnMessageCallback(messageHandler); |
| | | |
| | | |
| | | console.log('✅ 全局WebSocket消息处理器已设置'); |
| | | } catch (error) { |
| | | console.error('❌ 全局WebSocket初始化失败:', error); |
| | | } |
| | | } |
| | | |
| | | |
| | | // 监听用户信息变化,初始化WebSocket |
| | | watch( |
| | | () => userStore.userInfo, |