1***@qq.com
1***@qq.com
  • 发布:2019-10-11 15:16
  • 更新:2020-11-02 11:56
  • 阅读:3893

uni-app 使用web-view引用第三方网页,需要连续点击两次才能返回

分类:uni-app

然后我把这个url换成淘宝的就是好的,已经确定是那个外部链接的问题,怎么解决啊

2019-10-11 15:16 负责人:无 分享
已邀请:
wenju

wenju - https://www.mescroll.com -- 精致的下拉刷新和上拉加载组件

app运行到android手机就会重现此问题.. 换成百度也是好的 ; 改为自己的链接就需要返回两次了

  • wenju

    可怕 找了好久 发觉自己的远程界面做了返回监听.重定向了

    2019-11-12 11:28

9***@qq.com

9***@qq.com

我是web-view链入本地html后返回需要点击两次。

后来发现放置web-view组件的vue页面都没显示出来,直接显示的就是链入的那个本地html(web-view链入的页面自动铺满),而且监听返回事件也无效。

我就在想是不是因为有两个页面的原因才需要返回两次又或者是远程网页使用plus的API造成back监听冲突。

然后看了下uni官方文档发现直接用js创建web-view的方式可以解决这个问题。
https://uniapp.dcloud.io/component/web-view

onLoad() {
// #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.loadURL("https://www.baidu.com")
var currentWebview = this.$scope.$getAppWebview(); //此对象相当于html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效,非v3编译模式使用this.$mp.page.$getAppWebview()
currentWebview.append(wv);//一定要append到当前的页面里!!!才能跟随当前页面一起做动画,一起关闭
setTimeout(function() {
console.log(wv.getStyle())
}, 1000);//如果是首页的onload调用时需要延时一下,二级页面无需延时,可直接获取
// #endif

该问题目前已经被锁定, 无法添加新回复