uniapp 蒲公英升级

export function checkUpdateApp() {
    //  获取manifest.json里的配置信息
    plus.runtime.getProperty(plus.runtime.appid, function(widgetinfo) {
        // 可以根据manifest.json里的应用名称来进行针对性的APP升级
        if (widgetinfo.name == 'xxxx') { //APP名称
            uni.request({
                url: 'https://www.pgyer.com/apiv2/app/check', //检测App是否有更新
                data: {
                    _api_key: '', //API 用户自己的Key
                    appKey: '' //App应用的唯一Key
                },
                success: check => {
                    console.log('check', check.data);
                    if (check.statusCode == 200 && check.data.code == 0 && check.data.data) {
                        console.log('1234');
                        let data = check.data.data;
                        console.log('data', data);
                        let version = widgetinfo.version, //用户当前版本
                            appVersion = data.buildVersion, //升级包版本
                            appName = widgetinfo.name, //app名称
                            // updata = data.apk_client_force_updata,//是否强制热更新
                            appurl = data.downloadURL, //升级包地址
                            intro = '发现新的《瑞金田长》APP,需要更新APP'; //升级包提示
                        // wgt_version = data.wgt_version,//热更新版本号
                        // wgt_download = data.wgt_download;//热更新地址
                        //如果用户版本号小于升级包版本号,先升级
    
                        if (data && version < appVersion) {
                            uni.showModal({
                                title: '更新提示',
                                confirmText: '立即升级',
                                content: intro,
                                success: res => {
                                    if (res.confirm) {
                                        uni.showLoading({
                                            title: '正在更新',
                                            mask: true
                                        });
                                        uni.downloadFile({
                                            url: appurl,
                                            success: download => {
                                                if (download.statusCode == 200) {
                                                    plus.runtime.install(
                                                        download.tempFilePath,
                                                        {
                                                            force: false
                                                        },
                                                        () => {
                                                            uni.hideLoading();
                                                            plus.runtime.restart(); //更新成功启动
                                                        },
                                                        err => {
                                                            //若没下载成功还是去下载
                                                            uni.hideLoading();
                                                            uni.showToast({
                                                                title: '更新失败,将跳转下载页面',
                                                                icon: 'none',
                                                                duration: 2000
                                                            });
                                                        }
                                                    );
                                                    setTimeout(function() {
                                                        plus.runtime.openURL(appurl);
                                                    }, 2000);
                                                }
                                            }
                                        });
                                    } else if (res.cancel) {
                                        console.log('用户点击取消');
                                        uni.showToast({
                                            title: '版本无法继续使用瑞金田长APP,请先升级',
                                            icon: 'none',
                                            duration: 2000
                                        });
                                        //退出app
                                        setTimeout(function() {
                                            plus.runtime.quit();
                                        }, 2000);
                                    }
                                },
                                fail: () => {
                                    uni.hideLoading();
                                }
                            });
                        } else {
                            
                        }
                    }
                }
            });
        } else {
            //非安卓
        }
    });
}

https://blog.csdn.net/qq_39891453/article/details/128035540

 

记录进步!!!

posted @ 2023-03-14 16:10  玛卡巴鉲  阅读(62)  评论(0编辑  收藏  举报