| | |
| | | const parseUrlParams = () => { |
| | | // 1. 优先从route.query.voiceparams获取参数 |
| | | if (route.query && route.query.voiceparams) { |
| | | console.log('从route.query.voiceparams获取参数:', route.query.voiceparams); |
| | | try { |
| | | // 解码并解析voiceparams参数 |
| | | const params = JSON.parse(decodeURIComponent(route.query.voiceparams)); |
| | | const contact = JSON.parse(decodeURIComponent(route.query.contact)); |
| | | |
| | | peerUid.value = String(contact.userId); |
| | | |
| | | peerUid.value = String(params.peerUid); |
| | | // 如果是来电类型,直接触发来电状态 |
| | | if (params.type === 'incoming') { |
| | | log('📞 voiceparams检测到来电,直接进入来电状态'); |
| | |
| | | state.value = 'ringing'; |
| | | log('📞 收到来电 call,来自', incomingFrom); |
| | | |
| | | // 开始来电提示(铃声和震动) |
| | | playRingtone(); |
| | | startVibration(); |
| | | |
| | | } |
| | | } catch (e) { |
| | | log('❌ 解析voiceparams参数失败:', String(e)); |
| | |
| | | } |
| | | |
| | | // 2. 同时保留原有的URL参数解析逻辑,作为备选 |
| | | const url = new URL(window.location.href); |
| | | const paramsStr = url.searchParams.get('params'); |
| | | if (paramsStr) { |
| | | try { |
| | | const params = JSON.parse(decodeURIComponent(paramsStr)); |
| | | if (params.peerUid) { |
| | | peerUid.value = String(params.peerUid); |
| | | log('🔗 从URL参数获取peerUid:', params.peerUid); |
| | | } |
| | | } catch (e) { |
| | | log('❌ 解析URL参数失败:', String(e)); |
| | | } |
| | | } |
| | | // const url = new URL(window.location.href); |
| | | // const paramsStr = url.searchParams.get('params'); |
| | | // if (paramsStr) { |
| | | // try { |
| | | // const params = JSON.parse(decodeURIComponent(paramsStr)); |
| | | // if (params.peerUid) { |
| | | // peerUid.value = String(params.peerUid); |
| | | // log('🔗 从URL参数获取peerUid:', params.peerUid); |
| | | // } |
| | | // } catch (e) { |
| | | // log('❌ 解析URL参数失败:', String(e)); |
| | | // } |
| | | // } |
| | | } |
| | | |
| | | // 从URL参数或本地存储获取用户ID |
| | |
| | | // 获取token |
| | | if (params.access_token) { |
| | | accessToken.value = params.access_token; |
| | | log('🔗 从params获取access_token:', accessToken.value); |
| | | } |
| | | } catch (e) { |
| | | log('❌ 解析params参数失败:', String(e)); |