uniapp實現(xiàn)webview頁面關閉功能的代碼示例
實現(xiàn)思路:
1.關閉按鈕是使用原生button添加的close屬性。(見page.json頁面)
2.監(jiān)聽關閉按鈕的方法。(onNavigationBarButtonTap)
3.寫實現(xiàn)關閉webview所有頁面的邏輯。
廢話不多說,直接上代碼
1.page.json添加關閉按鈕
2.webview頁面實現(xiàn)關閉邏輯
實現(xiàn)代碼:
<template> <view v-if="params.url"> <web-view :webview-styles="webviewStyles" :src="`${params.url}`"></web-view> </view> </template> <script> export default { data() { return { params: { url: "https://www.hgjt.com/" }, webviewStyles: { progress: { color: "#027AFF" } } } }, props: { src: { type: [String], default: null } }, onLoad(event) {}, onBackPress(event) { console.log(event, 'event') }, onNavigationBarButtonTap(e) { if (e.type == 'close') { let pages = getCurrentPages() let page = pages[pages.length - 1]; let currentPages = page.$getAppWebview() let children = currentPages.children() if (children.length === 0) { uni.navigateBack() } else { children[0].close() setTimeout(() => { uni.navigateBack() }, 80) } return true; } } } </script>
附:uniapp使用webview的頁面需要返回兩次
在使用uniapp的webview組件時,如果需要返回兩次才能退出頁面,有可能是因為在webview中嵌入的H5頁面中使用了history.back()方法,導致返回棧中多了一層??梢試L試在H5頁面中使用history.go(-1)方法或者uni.navigateBack()方法返回上一級頁面,這樣就可以避免返回棧中多余的一層,實現(xiàn)一次返回退出頁面的效果。另外,也可以在webview組件中設置vue-router的mode為history模式,這樣就可以使用uni.navigateBack()方法進行返回,而不會出現(xiàn)返回兩次的情況。
總結
到此這篇關于uniapp實現(xiàn)webview頁面關閉功能的文章就介紹到這了,更多相關uniapp webview頁面關閉功能內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue3使用vue3-print-nb實現(xiàn)區(qū)域打印功能
這篇文章主要給大家介紹了關于vue3使用vue3-print-nb實現(xiàn)區(qū)域打印功能的相關資料,在日常操作中,相信很多人在Vue怎么用插件實現(xiàn)打印功能問題上存在疑惑,需要的朋友可以參考下2023-07-07使用yarn?build?打包vue項目時靜態(tài)文件或圖片未打包成功的問題及解決方法
這篇文章主要介紹了使用yarn?build?打包vue項目時靜態(tài)文件或圖片未打包成功的問題及解決方法,解決方法不復雜通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2023-08-08