diff --git a/packages/uni-app-plus/dist/index.v3.js b/packages/uni-app-plus/dist/index.v3.js index 4c14670129a37d7850eb118542241e1892be0033..bdabe8eef1f9ab84afc1674bea6f67da53c97537 100644 --- a/packages/uni-app-plus/dist/index.v3.js +++ b/packages/uni-app-plus/dist/index.v3.js @@ -6641,17 +6641,15 @@ var serviceContext = (function () { } function onWebviewClose (webview) { - webview.addEventListener('close', () => { - if (webview.popupSubNVueWebviews) { // 移除所有 popupSubNVueWebview - Object.keys(webview.popupSubNVueWebviews).forEach(id => { - if (process.env.NODE_ENV !== 'production') { - console.log( - `UNIAPP[webview][${webview.id}]:popupSubNVueWebview[${id}].close` - ); - } - webview.popupSubNVueWebviews[id].close('none'); - }); - } + webview.popupSubNVueWebviews && webview.addEventListener('close', () => { + Object.keys(webview.popupSubNVueWebviews).forEach(id => { + if (process.env.NODE_ENV !== 'production') { + console.log( + `UNIAPP[webview][${webview.id}]:popupSubNVueWebview[${id}].close` + ); + } + webview.popupSubNVueWebviews[id].close('none'); + }); }); } @@ -6782,28 +6780,6 @@ var serviceContext = (function () { initSubNVues(routeOptions, webview); - // TODO 优化相关依赖性 - // webview.addEventListener('popGesture', e => { - // if (e.type === 'start') { - // // 开始拖拽,还原状态栏前景色 - // this.restoreStatusBarStyle() - // } else if (e.type === 'end' && !e.result) { - // // 拖拽未完成,设置为当前状态栏前景色 - // this.setStatusBarStyle() - // } else if (e.type === 'end' && e.result) { - // removeWebview(this.id) - // const lastWebview = getLastWebview() - // if (lastWebview) { - // publish('onAppRoute', { - // path: lastWebview.page.replace('.html', ''), - // query: {}, - // openType: 'navigateBack', - // webviewId: lastWebview.id - // }) - // } - // } - // }) - Object.keys(WEBVIEW_LISTENERS).forEach(name => { webview.addEventListener(name, (e) => { emit(WEBVIEW_LISTENERS[name], e, parseInt(webview.id)); @@ -6813,8 +6789,8 @@ var serviceContext = (function () { onWebviewClose(webview); onWebviewResize(webview); - if (plus.os.name === 'iOS' && webview.nvue) { - onWebviewRecovery(webview, routeOptions); + if (plus.os.name === 'iOS') { + !webview.nvue && onWebviewRecovery(webview, routeOptions); } on(webview.id + '.startPullDownRefresh', () => { diff --git a/src/platforms/app-plus/service/framework/webview/index.js b/src/platforms/app-plus/service/framework/webview/index.js index a8f8a09fc077088d8c02bb076aca3847fb19d01d..d95356fded00111d0e7819d8ab02bc03056eb613 100644 --- a/src/platforms/app-plus/service/framework/webview/index.js +++ b/src/platforms/app-plus/service/framework/webview/index.js @@ -22,6 +22,10 @@ import { onWebviewRecovery } from './on-webview-recovery' +import { + onWebviewPopGesture +} from './on-webview-pop-gesture' + export let preloadWebview let id = 2 @@ -81,28 +85,6 @@ export function initWebview (webview, routeOptions) { initSubNVues(routeOptions, webview) - // TODO 优化相关依赖性 - // webview.addEventListener('popGesture', e => { - // if (e.type === 'start') { - // // 开始拖拽,还原状态栏前景色 - // this.restoreStatusBarStyle() - // } else if (e.type === 'end' && !e.result) { - // // 拖拽未完成,设置为当前状态栏前景色 - // this.setStatusBarStyle() - // } else if (e.type === 'end' && e.result) { - // removeWebview(this.id) - // const lastWebview = getLastWebview() - // if (lastWebview) { - // publish('onAppRoute', { - // path: lastWebview.page.replace('.html', ''), - // query: {}, - // openType: 'navigateBack', - // webviewId: lastWebview.id - // }) - // } - // } - // }) - Object.keys(WEBVIEW_LISTENERS).forEach(name => { webview.addEventListener(name, (e) => { emit(WEBVIEW_LISTENERS[name], e, parseInt(webview.id)) @@ -112,8 +94,9 @@ export function initWebview (webview, routeOptions) { onWebviewClose(webview) onWebviewResize(webview) - if (plus.os.name === 'iOS' && webview.nvue) { - onWebviewRecovery(webview, routeOptions) + if (plus.os.name === 'iOS') { + !webview.nvue && onWebviewRecovery(webview, routeOptions) + onWebviewPopGesture(webview) } on(webview.id + '.startPullDownRefresh', () => { diff --git a/src/platforms/app-plus/service/framework/webview/on-webview-close.js b/src/platforms/app-plus/service/framework/webview/on-webview-close.js index 6929c3e81e6bdae68ec6f1a9eb42a476ecd7cb68..530df188471becef9cd112842146ecf1f4c65433 100644 --- a/src/platforms/app-plus/service/framework/webview/on-webview-close.js +++ b/src/platforms/app-plus/service/framework/webview/on-webview-close.js @@ -1,14 +1,12 @@ export function onWebviewClose (webview) { - webview.addEventListener('close', () => { - if (webview.popupSubNVueWebviews) { // 移除所有 popupSubNVueWebview - Object.keys(webview.popupSubNVueWebviews).forEach(id => { - if (process.env.NODE_ENV !== 'production') { - console.log( - `UNIAPP[webview][${webview.id}]:popupSubNVueWebview[${id}].close` - ) - } - webview.popupSubNVueWebviews[id].close('none') - }) - } + webview.popupSubNVueWebviews && webview.addEventListener('close', () => { + Object.keys(webview.popupSubNVueWebviews).forEach(id => { + if (process.env.NODE_ENV !== 'production') { + console.log( + `UNIAPP[webview][${webview.id}]:popupSubNVueWebview[${id}].close` + ) + } + webview.popupSubNVueWebviews[id].close('none') + }) }) } diff --git a/src/platforms/app-plus/service/framework/webview/on-webview-pop-gesture.js b/src/platforms/app-plus/service/framework/webview/on-webview-pop-gesture.js new file mode 100644 index 0000000000000000000000000000000000000000..50ee921631d819d3fd290b2349eb9160251deeb0 --- /dev/null +++ b/src/platforms/app-plus/service/framework/webview/on-webview-pop-gesture.js @@ -0,0 +1,23 @@ +export function onWebviewPopGesture (webview) { + // TODO 优化相关依赖性 + // webview.addEventListener('popGesture', e => { + // if (e.type === 'start') { + // // 开始拖拽,还原状态栏前景色 + // this.restoreStatusBarStyle() + // } else if (e.type === 'end' && !e.result) { + // // 拖拽未完成,设置为当前状态栏前景色 + // this.setStatusBarStyle() + // } else if (e.type === 'end' && e.result) { + // removeWebview(this.id) + // const lastWebview = getLastWebview() + // if (lastWebview) { + // publish('onAppRoute', { + // path: lastWebview.page.replace('.html', ''), + // query: {}, + // openType: 'navigateBack', + // webviewId: lastWebview.id + // }) + // } + // } + // }) +}