不知道这样的是否你想要的
<template>
<view>
<web-view :src="url" @message="getMessage"></web-view>
</view>
</template>
<script>
var wv;//计划创建的webview
export default {
onReady() {
console.log('当前环境:' + uni.getSystemInfoSync().platform);//如果是安卓才执行
if(uni.getSystemInfoSync().platform == 'android')
{
var currentWebview = this.$mp.page.$getAppWebview() //获取当前页面的webview对象
setTimeout(function() {
wv = currentWebview.children()[0]
var url222 = wv.getURL();
//console.log('当前网址222: '+url222);
// 拦截所有页面跳转,可使用参数拦截.apk的跳转
wv.overrideUrlLoading({mode:'reject',match:'.*\.apk.*'}, function(e){
uni.showLoading({
title: '下载中...',
mask: false
});
//console.log('拦截的URL666: '+e.url);
var dtask = plus.downloader.createDownload(e.url, {}, function ( d, status ) {
uni.hideLoading();
uni.showToast({
title: '下载成功...',
mask: false,
duration: 1500
});
// 下载完成
if ( status == 200 ) {
plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename),{},{},function(error){
uni.showToast({
title: '安装失败',
mask: false,
duration: 1500
});
})
} else {
uni.showToast({
title: '下载失败,请检查您的网络',
mask: false,
duration: 1500
});
}
});
dtask.start();
});
}, 1000); //如果是页面初始化调用时,需要延时一下
}
},
data(){
return {
url:'',
id:'',
banner: {}
}
},
onLoad(option) {
// 目前在某些平台参数会被主动 decode,暂时这样处理。
try {
this.banner = JSON.parse(decodeURIComponent(option.query));
} catch (error) {
this.banner = JSON.parse(option.query);
}
this.url = this.banner;
},
methods:{
getMessage(event) {
console.log('提示内容: '+JSON.stringify(event.detail.data));
uni.showModal({
content: JSON.stringify(event.detail.data),
showCancel: false
});
}
}
}
</script>
<style>
</style>
6 个回复
大熊被骗
俊达 (作者)
简单来说,安卓端app里面,通过web-view加载的第三方页面下载到的apk安装包,在下载完成后如何实现进入自动安装界面?
不然下载完后用户都找不到下载到哪里去了。
DCloud_UNI_GSQ
使用plus的API进行下载和安装
俊达 (作者)
web-view加载的是第三方的页面,不是我们自己项目里用uni-app开发的页面。我怎么能控制到第三方页面的行为呢?
2019-02-19 18:19
DCloud_UNI_GSQ
@417897@qq.com:那就不能控制人家了
2019-02-21 20:48
俊达 (作者)
那这样就没法正常安装了。但是在浏览器里直接打开这个页面是能够下载并自动进入安装界面的。
2019-02-22 01:02
8***@qq.com
有方法能获取第三方页面的下载链接吗 @DCloud_UNI_GSQ
2019-06-28 15:04
8***@qq.com
回复 俊达: 你现在是怎么解决的啊,第三方页面里的下载该怎么用外部浏览器打开啊
2019-06-28 15:04
俊达 (作者)
web-view加载的是第三方的页面,不是我们自己项目里用uni-app开发的页面。我怎么能控制到第三方页面的行为呢?
大熊被骗
还没有解决吗,能实现不?
龙雨溪
联系我,包解决。
2019-07-22 10:37
j***@163.com
回复 龙雨溪: 怎么联系你,有偿解决
2020-08-27 17:28
1***@qq.com - helloworld
666