import { WEBVIEW_READY } from '../../../constants' export function onWebviewRecovery (webview, routeOptions) { const { subscribe, unsubscribe } = UniServiceJSBridge const id = webview.id const onWebviewRecoveryReady = function (data, pageId) { if (id !== pageId) { return } unsubscribe(WEBVIEW_READY, onWebviewRecoveryReady) if (process.env.NODE_ENV !== 'production') { console.log(`UNIAPP[webview][${id}]:onWebviewRecoveryReady ready`) } // 恢复目标页面 pageId = parseInt(pageId) const page = getCurrentPages(true).find(page => page.$page.id === pageId) if (!page) { return console.error(`Page[${pageId}] not found`) } page.$vm._$vd.restore() } webview.addEventListener('recovery', e => { if (process.env.NODE_ENV !== 'production') { console.log(`UNIAPP[webview][${this.id}].recovery.reload:` + JSON.stringify({ path: routeOptions.path, webviewId: id })) } subscribe(WEBVIEW_READY, onWebviewRecoveryReady) }) }