uniapp App 端 版本更新检测

news2024/11/15 9:05:57

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.coloradmin.cn/o/1223354.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序开发---实现文件上传和下载

在开发小程序的过程中,我们难免会遇到使用小程序对后端发送文件;或者接收后端的文件,本文章将手把手带你简单高效实现微信小程序的文件上传下载功能 前期准备 由于目前小程序保护用户个人隐私力度加大 ,因此我们要想实现文件上传…

基于PLC的自动洗碗机控制系统(论文+源码)

1.系统设计 本课题基于PLC的自动洗碗机控制系统,在此将主要功能设定如下: 通过上下喷头旋转喷水湿润餐具;添加洗涤剂(洗碗液);上下喷头喷水洗涤餐具;排出污水;往碗碟上喷洒更多的水…

在c#中如何将多个点位(Point)转换为多边形(Polygon)并装换为shp图层

👻如图,我现在有一组经纬度点位Point,接下来我们将他装换为多边形Polygon格式 👻使用QGIS > 图层 > 添加图层 > 添加分隔文本图层 > 打开这个csv点位文件 👻打开后如左下图,csv文件中的四个点位…

突发!“ChatGPT 之父”奥特曼被 OpenAI 开除!!乔布斯故事重演了?

重磅消息! OpenAI刚刚官宣领导层换届,SamAltman辞任CEO并离开董事会,原CTO Mira Murati 任命为临时CEO,并正在进行寻找永久继任CE0。 大模型研究测试传送门 GPT-4传送门(免墙,可直接测试,遇浏…

MIUI解锁BL

解锁BL锁会清空手机数据!!! 解锁工具下载: http://www.miui.com/unlock/download.html 解压运行.exe文件 注意点: 手机绑定的账号与解锁工具登录的账号应是同一个账号 在Fastboot界面, 一直无法显示连接手机 USB3.0接口的问题, 巨坑!!! 解决方案参考下面第二篇文章 参考文…

代码随想录算法训练营第25天|216.组合总和III 17.电话号码的字母组合

JAVA代码编写 216. 组合总和III 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次,组合可以以任何顺序返回。 示例 1: 输入: k …

uview使用u-action-sheet添加滚动条

0 效果 1 修改uview源码 node_modules/uview-ui/u-action-sheet/u-action-sheet.vue

vb.net U盘或移动硬盘 插入 自动(静默)复制指定格式文件

U盘或移动硬盘 插入 自动复制指定格式文件至系统盘符 开发语言:vb.net 重要申明:该程序只是防止本人不在电脑旁时,别人偷偷copy你的电脑文件,让他偷鸡成了也要蚀把米。严禁从事黑客或违反道德等不良行为,故而不发布程…

TURN 协议

TURN 地址分配 抓包过程 TURN 连接建立 这里指的是 Client 收到对端从 TURN 分配的 IP 和 端口 ,和对端的 TURN 和 IP 绑定的过程 CreatePermission Request 等消息,都会携带有对端的 TURN 和 IP 抓包过程

4月2日-3日·上海 | 3DCC 第二届3D细胞培养与类器官研发峰会携手CGT Asia 重磅来袭

类器官(Organoids)作为干细胞研究领域最重要的成果之一,在基础医学研究、转化医学及药物研发领域展现出巨大的应用潜力,特别是在精准医疗以及药物安全性和有效性评价等方向凭借其先天优势引起了极大的市场关注,成为各大…

asp.net心理健康管理系统VS开发sqlserver数据库web结构c#编程计算机网页项目

一、源码特点 asp.net 心理健康管理系统 是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 系统视频链接 https://www.bilibili.com/video/BV19w411H7P4/ 二、功能介绍 本系统使用Microsoft Visual Studio…

LeetCode热题100——图论

图论 1. 岛屿的数量2. 腐烂的橘子 1. 岛屿的数量 给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆…

山西电力市场日前价格预测【2023-11-18】

1.日前价格预测 预测说明: 如上图所示,预测明日(2023-11-18)山西电力市场全天平均日前电价为202.44元/MWh。其中,最高日前电价为346.71元/MWh,预计出现在18:00。最低日前电价为0.00元/MWh,预计…

可逆矩阵的性质

如果矩阵A可逆,那么它的逆矩阵也可逆,并且如果矩阵A可逆,假设是一个不为0的数,那么也可逆,并且如果矩阵A和都可逆,而且它们的阶数也相同,那么它们的乘积也是可逆的,并且如果矩阵A可逆…

适用于 Windows 的 10 款最佳数据恢复工具

在数字时代,数据就是一切。 从珍贵的家庭照片和重要的工作文件到我们最喜欢的音乐和电影,我们的生活存储在越来越多的不同设备上。 系统崩溃、意外删除或恶意病毒都可能导致有价值的数据在瞬间丢失。 这就是数据恢复工具的用武之地。 适用于 Windows 的 …

为什么C++标准库中atomic shared_ptr不是lockfree实现?

为什么C标准库中atomic shared_ptr不是lockfree实现? 把 shared_ptr 做成 lock_free,应该是没有技术上的可行性。shared_ptr 比一个指针要大不少:最近很多小伙伴找我,说想要一些C的资料,然后我根据自己从业十年经验&am…

Unity3D 解决相机拉高之后物体阴影消失

在Edit-Project Settings-Quality中找到Shadow Distance,将其调大即可

【mysql】2006 - Server has gone away

执行了一组插入语句 提示:2006 - Server has gone away; 2006-服务器已经消失; 消失去哪里了,被黑洞吞没了吗?!!! 网络问题 网络不稳定?断网了?检查网络连…

Redis数据的持久化

Redis的持久化有两种方式: RDB(Redis Database)和AOF(Append Only File) 目录 一、RDB 保存方式 2、rdb在redis.conf文件中的配置 二、AOF 1、保存方式 2、aof方式持久化在redis.conf文件中的配置 三、持久化建…

STM32/N32G455国民科技芯片驱动DS1302时钟---笔记

这次来分享一下DS1302时钟IC,之前听说过这个IC,但是一直没搞过,用了半天时间就明白了原理和驱动,说明还是很简单的。 注:首先来区分一下DS1302和RTC时钟有什么不同,为什么不直接用RTC呢? RTC不…