uniapp默认左滑是关闭整个webview,而不是关闭当前页 实现思路:拦截webview的url跳转操作,将新url用webview组件重新打开,当左滑的时候,默认关闭的就是当前webview,继而跳转到上一次的页面中
< template> < view> < web-view :src = " weburl" :update-title = " false" :webview-styles = " webviewStyles" > </ web-view> </ view>
</ template> < script> export default { data ( ) { return { webviewStyles : { progress : { color : '#FF3333' } } , weburl : "" } ; } , onLoad ( option ) { console. log ( "接收到的url参数是:" , option. weburl) ; this . weburl = option. weburl} , onReady ( ) { var pages = getCurrentPages ( ) ; var page = pages[ pages. length - 1 ] ; var currentWebview = page. $getAppWebview ( ) ; var url = currentWebview. children ( ) [ 0 ] . getURL ( ) ; console. log ( '=== url ===' , url) ; var wv = currentWebview. children ( ) [ 0 ] ; wv. overrideUrlLoading ( { mode : 'reject' , match : '.*' } , function ( e ) { console. log ( 'reject url: ' + e. url) ; uni. navigateTo ( { url : ` /pages/webbox/webbox?weburl= ${ e. url} ` } ) } ) ; } , onBackPress ( e ) { let pages = getCurrentPages ( ) let page = pages[ pages. length - 1 ] ; let currentPages = page. $getAppWebview ( ) currentPages. close ( ) return false } , onNavigationBarButtonTap ( ) { console. log ( "点击了标题栏按钮" ) uni. $emit ( "showMenu" ) } , methods : { } }
</ script> < style lang = " scss" > </ style>