版本更新

在项目中版本是肯定会更新的,客户端更新代码用的是uni,

methods: {
            /**
             * 安卓应用的检测更新实现
             */
            AndroidCheckUpdate:function(){  
                var _this = this;  
                uni.request({
                    //请求地址,设置为自己的服务器链接
                    url: GLOBAL.DOMAIN_URL+'/uniapi/checkAndroidVersion.html',
                    //method: 'GET',  
                    data: {},  
                    success: resMz => {
                        var server_version = resMz.data.data.version;
                        var currTimeStamp = resMz.data.data.timestamp;
                        // 判断缓存时间
                        uni.getStorage({
                            key: 'tip_version_update_time',
                            success: function (res) {
                                var lastTimeStamp = res.data;
                                //定义提醒的时间间隔,避免烦人的一直提示,一个小时:3600;一天:86400
                                var tipTimeLength = 3600;
                                if((lastTimeStamp+tipTimeLength) > currTimeStamp){
                                    //避免多次提醒,不要更新
                                    console.log("避免多次提醒,不要更新");
                                }else{
                                    //重新设置时间戳
                                    _this.setStorageForAppVersion(currTimeStamp);
                                    //进行版本型号的比对 以及下载更新请求
                                    _this.checkVersionToLoadUpdate(server_version, _this.version);
                                }
                            },
                            fail:function(res){
                                _this.setStorageForAppVersion(currTimeStamp);
                            }
                        });
                    },  
                    fail: () => {},  
                    complete: () => {}  
                });  
            },  
            /**
             * //设置应用版本号对应的缓存信息
             * @param {Object} currTimeStamp 当前获取的时间戳
             */
            setStorageForAppVersion:function(currTimeStamp){
                uni.setStorage({
                    key: 'tip_version_update_time',
                    data: currTimeStamp,
                    success: function () {
                        console.log('setStorage-success');
                    }
                });
            },
            /**
             * 进行版本型号的比对 以及下载更新请求
             * @param {Object} server_version 服务器最新 应用版本号
             * @param {Object} curr_version 当前应用版本号
             */
            checkVersionToLoadUpdate:function(server_version,curr_version){
                if(server_version > curr_version){
                    //TODO 此处判断是否为 WIFI连接状态
                    if(plus.networkinfo.getCurrentType()!=3){
                        uni.showToast({  
                            title: '有新的版本发布,检测到您目前非Wifi连接,为节约您的流量,程序已停止自动更新,将在您连接WIFI之后重新检测更新',  
                            mask: true,  
                            duration: 5000,
                            icon:"none"
                        });  
                        return;  
                    }else{
                        uni.showModal({
                            title: "版本更新",
                            content: '有新的版本发布,检测到您当前为Wifi连接,是否立即进行新版本下载?',
                            confirmText:'立即更新',
                            cancelText:'稍后进行',
                            success: function (res) {
                                if (res.confirm) {
                                    uni.showToast({
                                        icon:"none",
                                        mask: true,
                                        title: '有新的版本发布,检测到您目前为Wifi连接,程序已启动自动更新。新版本下载完成后将自动弹出安装程序',  
                                        duration: 5000,  
                                    }); 
                                    //设置 最新版本apk的下载链接
                                    var downloadApkUrl = GLOBAL.DOMAIN_URL+"/apk/mzz2.apk";
                                    var dtask = plus.downloader.createDownload( downloadApkUrl, {}, function ( d, status ) {  
                                            // 下载完成  
                                            if ( status == 200 ) {   
                                                plus.runtime.install(plus.io.convertLocalFileSystemURL(d.filename),{},{},function(error){  
                                                    uni.showToast({  
                                                        title: '安装失败', 
                                                        duration: 1500  
                                                    });  
                                                })
                                            } else {  
                                                 uni.showToast({  
                                                    title: '更新失败',
                                                    duration: 1500  
                                                 });  
                                            }    
                                        });  
                                    dtask.start();
                                } else if (res.cancel) {
                                    console.log('稍后更新');
                                }
                            }
                        });
                    }
                }
            },


        }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值