直奔主題,題目上的兩個(gè)坑解決方法如下:
一、uni-app web-view組件 打包之后ios顯示錯(cuò)誤或者顯示不出來(lái)。
解決方案:
web-view組件的src是請(qǐng)求數(shù)據(jù)接口返回的url的話需要判斷一下當(dāng)前數(shù)據(jù)是否存在,可解決ios端空白或者報(bào)錯(cuò)問(wèn)題。
<web-view v-if="url" :src="url"></web-view>
二、web-view組件返回按鍵返回不到軟件本身頁(yè)面。
解決方案如下可復(fù)制解決:
var wv;//計(jì)劃創(chuàng)建的webview
export default {
onLoad(e) {
var linkData = e.link;
console.log(linkData,"獲取到的數(shù)據(jù)是什么");
// #ifdef APP-PLUS
wv = plus.webview.create("","custom-webview",{
plusrequire:"none", //禁止遠(yuǎn)程網(wǎng)頁(yè)使用plus的API,有些使用mui制作的網(wǎng)頁(yè)可能會(huì)監(jiān)聽(tīng)plus.key,造成關(guān)閉頁(yè)面混亂,可以通過(guò)這種方式禁止
'uni-app': 'none', //不加載uni-app渲染層框架,避免樣式?jīng)_突
top:uni.getSystemInfoSync().statusBarHeight + 44 //放置在titleNView下方。如果還想在webview上方加個(gè)地址欄的什么的,可以繼續(xù)降低TOP值
})
wv.setStyle({ height:uni.getSystemInfoSync().windowHeight})
wv.loadURL(linkData)
var currentWebview = this.$mp.page.$getAppWebview() //獲取當(dāng)前頁(yè)面的webview對(duì)象
currentWebview.append(wv);//一定要append到當(dāng)前的頁(yè)面里!??!才能跟隨當(dāng)前頁(yè)面一起做動(dòng)畫(huà),一起關(guān)閉
setTimeout(function() {
console.log(wv.getStyle())
}, 1000);//如果是首頁(yè)的onload調(diào)用時(shí)需要延時(shí)一下,二級(jí)頁(yè)面無(wú)需延時(shí),可直接獲取
// #endif
}
}
說(shuō)明:wv.setStyle給webview重新設(shè)置高度,可顯示web-view里面嵌套的底部tabbar。