uniapp使用webview內(nèi)嵌H5的注意事項(xiàng)詳解
一、描述
uniapp項(xiàng)目中構(gòu)建app,需要內(nèi)嵌H5頁面,在使用webview時(shí),遇到了以下幾個(gè)問題:
- 內(nèi)嵌H5,默認(rèn)全屏顯示;
- 內(nèi)嵌頁面遮擋住了app的自定義tabbar組件;
- 樣式修改無效;
二、解決方案:
webview-style設(shè)置的樣式,針對app生效,style的定義方式兼容web;
<view class="page">
<web-view
:src="url"
class="webview"
allow
:fullscreen="false"
:webview-styles="style"
:frameBorder="0"
style="width: 100%; height: calc(100% - 10px)">
</web-view>
</view>const style = reactive({
width: '100%',
height: '100%',
bottom: '56px'
});
uni.getSystemInfo({
success: (res) => {
console.log(res);
style.height = res.screenHeight - res.statusBarHeight - res.safeAreaInsets?.bottom - 100 + 'px';
style.bottom = res.safeAreaInsets?.bottom + 56 + 'px';
}
});三、經(jīng)驗(yàn)&結(jié)論
關(guān)于webview的使用,除了了解相關(guān)屬性,其中webview-style才對app生效,值得關(guān)注。
web-view 是一個(gè) web 瀏覽器組件,可以用來承載網(wǎng)頁的容器,會(huì)自動(dòng)鋪滿整個(gè)頁面(nvue 使用需要手動(dòng)指定寬高)。
各小程序平臺,web-view 加載的 url 需要在后臺配置域名白名單,包括內(nèi)部再次 iframe 內(nèi)嵌的其他 url 。
屬性說明
| 屬性名 | 類型 | 說明 | 平臺差異說明 |
|---|---|---|---|
| src | String | webview 指向網(wǎng)頁的鏈接 | |
| allow | String | 用于為 iframe 指定其特征策略 | H5 |
| sandbox | String | 該屬性對呈現(xiàn)在 iframe 框架中的內(nèi)容啟用一些額外的限制條件。 | H5 |
| fullscreen | Boolean | 是否鋪滿整個(gè)頁面,默認(rèn)值:true。 | H5 (HBuilder X 3.5.4+) |
| webview-styles | Object | webview 的樣式 | App-vue |
| update-title | Boolean | 是否自動(dòng)更新當(dāng)前頁面標(biāo)題。默認(rèn)值:true | App-vue (HBuilder X 3.3.8+) |
| @message | EventHandler | 網(wǎng)頁向應(yīng)用 postMessage 時(shí),會(huì)在特定時(shí)機(jī)(后退、組件銷毀、分享)觸發(fā)并收到消息。 | H5 暫不支持(可以直接使用 window.postMessage) |
| @onPostMessage | EventHandler | 網(wǎng)頁向應(yīng)用實(shí)時(shí) postMessage | App-nvue |
| @load | EventHandler | 網(wǎng)頁加載成功時(shí)候觸發(fā)此事件。 | 微信小程序、支付寶小程序、抖音小程序、QQ小程序 |
| @error | EventHandler | 網(wǎng)頁加載失敗的時(shí)候觸發(fā)此事件。 | 微信小程序、支付寶小程序、抖音小程序、QQ小程序 |
注意
update-title僅支持App-vue。小程序恒為true,H5、nvue恒為false
src
| 來源 | App | H5 | 微信小程序 | 支付寶小程序 | 百度小程序 | 抖音小程序、飛書小程序 | QQ小程序 | 快應(yīng)用 | 360小程序 | 快手小程序 | 京東小程序 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 網(wǎng)絡(luò) | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ | √ |
| 本地 | √ | √ | x | x | x | x | x | x | x | x | x |
webview-styles
| 屬性 | 類型 | 說明 |
|---|---|---|
| progress | Object/Boolean | 進(jìn)度條樣式。僅加載網(wǎng)絡(luò) HTML 時(shí)生效,設(shè)置為 false 時(shí)禁用進(jìn)度條。 |
| width | String | web-view 組件的寬度。 |
| height | String | web-view 組件的高度。 |
總結(jié)
到此這篇關(guān)于uniapp使用webview內(nèi)嵌H5的注意事項(xiàng)的文章就介紹到這了,更多相關(guān)uniapp使用webview內(nèi)嵌H5內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue iview的菜單組件Mune 點(diǎn)擊不高亮的解決方案
今天小編就為大家分享一篇vue iview的菜單組件Mune 點(diǎn)擊不高亮的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
vue-element-admin如何轉(zhuǎn)換成中文
這篇文章主要介紹了vue-element-admin如何轉(zhuǎn)換成中文問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
vue項(xiàng)目打包后proxyTable代理失效問題及解決
這篇文章主要介紹了vue項(xiàng)目打包后proxyTable代理失效問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。2023-05-05
Vue實(shí)現(xiàn)驗(yàn)證碼登錄的方法實(shí)例
最近在自己寫頁面,然后寫登錄注冊UI的時(shí)候需要一個(gè)驗(yàn)證碼組件,去搜一下沒找到什么合適的,于是自己寫一個(gè),這篇文章主要給大家介紹了關(guān)于Vue實(shí)現(xiàn)驗(yàn)證碼登錄的相關(guān)資料,需要的朋友可以參考下2022-03-03
Vue $emit()不能觸發(fā)父組件方法的原因及解決
這篇文章主要介紹了Vue $emit()不能觸發(fā)父組件方法的原因及解決,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
詳解vue表單驗(yàn)證組件 v-verify-plugin
本篇文章主要介紹了詳解vue表單驗(yàn)證組件 v-verify-plugin,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04

