当前位置: 首页 > article >正文

uniapp App 端 版本更新检测

function checkVersion() {
        var req = {
            //升级检测数据
            appid: plus.runtime.appid,
            version: plus.runtime.version
        };
        const timestamp = Date.parse(new Date());  config.server.query_news
        uni.request({
            url: url,
            data: req,
            success: res => {
                var data = JSON.parse(res.data.shop_config.data.config)
                // console.log(data.android.version,'000000000000')
                var runtimev = Number(plus.runtime.version.replace(/\./gi, '')),
                    androidv = Number(data.android.version.replace(/\./gi, ''));
                // iosv = Number(data.ios.version.replace(/\./gi, ''));
                if (uni.getSystemInfoSync().platform == 'android') {
                    if (res.data.code == 0 && androidv > runtimev) {
                        uni.showModal({
                            //提醒用户更新
                            title: 'APP更新' + data.android.version,
                            content: data.android.note,
                            success: res => {
                                if (res.confirm) {
                                    // uni.showLoading({
                                    //     title: '更新中……'
                                    // });
                                    del_popup.value.open('center')
                                    const downloadTask = uni.downloadFile({
                                        //执行下载
                                        url: data.android.url, //下载地址
                                        timeout: 1000 * 30, //30秒超时时间
                                        success: downloadResult => {
                                            //下载成功
                                            console.log(downloadResult);
                                            // this.showdownLine = false;
                                            uni.hideLoading();
                                            if (downloadResult.statusCode == 200) {
                                                plus.runtime.install(
                                                    //安装软件
                                                    downloadResult.tempFilePath, {
                                                        force: true
                                                    },
                                                    function(res) {
                                                        plus.runtime.restart();
                                                    }
                                                );
                                            }
                                        },
                                        fail: err => {
                                            uni.hideLoading();
                                            // this.showdownLine = false;
                                            // this.$u.toast(err.errMsg);
                                            console.log(err);
                                        },
                                        complete: com => {
                                            console.log(com);
                                        }
                                    });

                                    // 下载进度
                                    downloadTask.onProgressUpdate(res => {
                                        // this.downloadNum = res.progress;
                                        percent.value = res.progress;
                                        console.log('下载进度' + res.progress);
                                        // console.log('已经下载的数据长度' + res.totalBytesWritten);
                                        // console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);

                                        // 满足测试条件,取消下载任务。
                                        // if (res.progress > 50) {
                                        //     downloadTask.abort();
                                        // }
                                    });
                                    uni.setStorageSync('appupdate', 1);
                                } else {
                                    plus.runtime.quit();
                                }
                            }
                        });
                    }
                } else if (uni.getSystemInfoSync().platform == 'ios') {
                    if (res.statusCode == 200 && iosv > runtimev) {
                        uni.showModal({
                            //提醒用户更新
                            title: 'APP更新' + data.ios.version,
                            content: data.ios.note,
                            success: res => {
                                // if (res.confirm) {
                                //     plus.runtime.openURL(data.ios.url);
                                //     uni.setStorageSync('appupdate', 1);
                                // } else {
                                //     plus.runtime.quit();
                                // }
                            }
                        });
                    }
                }
            }
        });
    }


http://www.kler.cn/a/135082.html

相关文章:

  • PYNQ 框架 - 中断(INTR)驱动
  • 【juc】AbstractQueuedSynchronized为什么采用双向链表
  • 【机器学习】平均绝对误差(MAE:Mean Absolute Error)
  • 运行springBlade项目历程
  • 设计模式-七个基本原则之一-单一职责原则 + SpringBoot案例
  • 【设计模式】结构型模式(四):组合模式、享元模式
  • 刷题方法论
  • 中国智能音箱市场销量下降,百度稳居第一 /中国即评出10个大模型创新案例 |魔法半周报
  • Dockerfile基础
  • 前台查看日志功能
  • RK3568 + YT 9215交换机芯片,MAC TO MAC 调试记录
  • 有趣的按钮分享
  • 【备忘录】Docker容器、镜像删除与资源清理命令
  • PC3329L DC-DC降压 10V-100V输入3A大流输出带EN功能实现零功耗只需极少元器件
  • 如何解决 Critical dependency: the request of a dependency is an expression ?
  • 全国行业就业数据,了解第一二三产业的就业人数~
  • 打不开github网页解决方法
  • MFC 对话框
  • Scala--- Actor通信模型
  • sqli-labs关卡18(基于http头部报错盲注)通关思路
  • 同一台Linux同时安装MYSQL5.7和MYSQL8(第二篇)
  • 2024年全网最全的Jmeter教程:jmeter_BeanShell脚本通过BeanShell进行加解密方法
  • C语言——冒泡排序
  • Flume学习笔记(3)—— Flume 自定义组件
  • “轻松实现Linux和Windows文件共享,只需几步配置!“
  • Error: Cannot find module ‘node:util‘