电话咨询
This commit is contained in:
@@ -427,25 +427,43 @@ const buildMiniProgramReturnUrl = () => {
|
||||
}
|
||||
|
||||
let endedRedirectTimer = null
|
||||
let miniProgramRedirected = false
|
||||
|
||||
const getMiniProgram = () => {
|
||||
return typeof window !== 'undefined' && window.wx && window.wx.miniProgram ? window.wx.miniProgram : null
|
||||
}
|
||||
|
||||
const notifyMiniProgramCallEnded = () => {
|
||||
const returnUrl = buildMiniProgramReturnUrl()
|
||||
const payload = {
|
||||
type: 'cloudLawCallEnded',
|
||||
action: 'cloudLawCallEnded',
|
||||
callId: callId.value,
|
||||
consultId: consultId.value,
|
||||
returnUrl: buildMiniProgramReturnUrl()
|
||||
returnUrl
|
||||
}
|
||||
const miniProgram = getMiniProgram()
|
||||
try {
|
||||
const miniProgram = typeof window !== 'undefined' && window.wx && window.wx.miniProgram ? window.wx.miniProgram : null
|
||||
// postMessage 只在 web-view 销毁/分享等时机投递;先发一份,作为小程序侧 onMessage 的兜底
|
||||
if (miniProgram && typeof miniProgram.postMessage === 'function') {
|
||||
miniProgram.postMessage({ data: payload })
|
||||
}
|
||||
if (miniProgram && typeof miniProgram.redirectTo === 'function' && payload.returnUrl) {
|
||||
miniProgram.redirectTo({ url: payload.returnUrl })
|
||||
} catch (e) {
|
||||
console.warn('[CloudLawVideoCall] postMessage failed', e)
|
||||
}
|
||||
if (miniProgramRedirected) return
|
||||
try {
|
||||
if (miniProgram && returnUrl && typeof miniProgram.redirectTo === 'function') {
|
||||
miniProgramRedirected = true
|
||||
miniProgram.redirectTo({ url: returnUrl })
|
||||
} else if (miniProgram && typeof miniProgram.navigateBack === 'function') {
|
||||
// 没有可跳转的咨询详情地址时,至少退回上一页(等待页),由小程序侧轮询兜底跳转
|
||||
miniProgramRedirected = true
|
||||
miniProgram.navigateBack({ delta: 1 })
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn('[CloudLawVideoCall] notify mini program failed', e)
|
||||
miniProgramRedirected = false
|
||||
console.warn('[CloudLawVideoCall] redirect mini program failed', e)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user