a***@163.com
a***@163.com
  • 发布:2019-07-16 14:42
  • 更新:2020-10-19 11:12
  • 阅读:8534

uniapp webview中如何让元素覆盖webview层级

分类:uni-app

目前我在开发的的app中,webview是通过src的形式展开,默认是铺满整个页面(除了默认的导航栏),src指向的是外部H5链接,外部链接中存在apk或者itms等下载链接,我目前是通过监听webview页面的url请求拦截匹配的下载链接,然后通过uni.downloadFile创建下载任务,需求是想在webview页面上部,导航栏以下的位置加一个进度条以显示下载进度,我通过evalJS方式注入原生js,虽然用z-index可以实现覆盖webview得以显示,但是由于没有双数据绑定,文件下载进度百分比这个变量并不能实时同步,是需要写定时器修改注入的dom的值吗,有没有好的方法能实现覆盖webview页面呢

2019-07-16 14:42 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

看web-view组件的文档,可以不用组件,自己create一个半屏webview

c***@163.com

c***@163.com - jieshao

你好,我在web-view中拦截url创建下载时,遇到了类似的问题。
wv.overrideUrlLoading({mode:'reject',match:'.apk.'}。
我是想下载.apk文件的,但有些跳转链接中没有apk,就匹配不到了,也不可能单独增加match。
请问有什么解决办法吗? 谢谢!

关键代码

var currentWebview = that.$mp.page.$getAppWebview()  
var wv = currentWebview.children()[0]  
// 就下一行这个match,只能匹配到包含apk的url  
wv.overrideUrlLoading({mode:'reject',match:'.*apk.*'}, function(e){  
    console.log('下载中...')  
    var dtask = plus.downloader.createDownload(e.url, {}, function ( d, status ) {  
        uni.hideLoading();  
        console.log('下载成功...')  
        // 下载完成  
        if ( status == 200 ) {  
            plus.runtime.openFile(d.filename, {}, function(error) {  
                console.log('安装失败')  
            })  
        } else {  
            console.log('下载失败,请检查您的网络')  
        }  
    });  
    dtask.start();  
});

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