|
- <template>
- <view>
- <web-view :src="url" @message="getMessage" :webview-styles="webviewStyles"></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();
- // 拦截所有页面跳转,可使用参数拦截.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: '',
- webviewStyles: {
- progress: {
- color: "#00aa7f"
- }
- }
- }
- },
- onLoad(option) {
- // 目前在某些平台参数会被主动 decode,暂时这样处理。
- this.webviewStyles.additionalHttpHeaders = {
- 'token': uni.getStorageSync('system_user_token')
- };
- if (option.url.indexOf("?") != -1) {
- this.url = option.url + '&client_token=' + uni.getStorageSync('system_user_token');
- } else {
- this.url = option.url + '?client_token=' + uni.getStorageSync('system_user_token');
- }
- },
- methods: {
- getMessage(event) {
- console.log('提示内容: ' + JSON.stringify(event.detail.data));
- uni.showModal({
- content: JSON.stringify(event.detail.data),
- showCancel: false
- });
- }
- }
- }
- </script>
- <style>
- </style>
复制代码
|
评分
-
查看全部评分
|