直奔主题,题目上的两个坑解决方法如下:
一、uni-app web-view组件 打包之后ios显示错误或者显示不出来。
解决方案:
web-view组件的src是请求数据接口返回的url的话需要判断一下当前数据是否存在,可解决ios端空白或者报错问题。
<web-view v-if="url" :src="url"></web-view>
二、web-view组件返回按键返回不到软件本身页面。
解决方案如下可复制解决:
var wv;//计划创建的webview
export default {
onLoad(e) {
var linkData = e.link;
console.log(linkData,"获取到的数据是什么");
// #ifdef APP-PLUS
wv = plus.webview.create("","custom-webview",{
plusrequire:"none", //禁止远程网页使用plus的API,有些使用mui制作的网页可能会监听plus.key,造成关闭页面混乱,可以通过这种方式禁止
'uni-app': 'none', //不加载uni-app渲染层框架,避免样式冲突
top:uni.getSystemInfoSync().statusBarHeight + 44 //放置在titleNView下方。如果还想在webview上方加个地址栏的什么的,可以继续降低TOP值
})
wv.setStyle({ height:uni.getSystemInfoSync().windowHeight})
wv.loadURL(linkData)
var currentWebview = this.$mp.page.$getAppWebview() //获取当前页面的webview对象
currentWebview.append(wv);//一定要append到当前的页面里!!!才能跟随当前页面一起做动画,一起关闭
setTimeout(function() {
console.log(wv.getStyle())
}, 1000);//如果是首页的onload调用时需要延时一下,二级页面无需延时,可直接获取
// #endif
}
}
说明:wv.setStyle给webview重新设置高度,可显示web-view里面嵌套的底部tabbar。