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.mzph.cn/news/148952.shtml

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

相关文章

LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字

上一节实现了 LangChain 实现给动物取名字, 实际上每次给不同的动物取名字,还得修改源代码,这周就用模块化template来实现。 1. 添加promptTemplate from langchain.llms import OpenAI # 导入Langchain库中的OpenAI模块 from langchain.p…

优思学院|什么是精益生产管理?从一个生活上的故事出发来说明。

你关掉电脑,离开办公室。 一个小时后,你进入家门和孩子们在一起。 你和家人一起吃晚饭。 你的老板打电话来查看你的项目进展。 你哄孩子入睡并给他们读个故事。 作为一个负责任的父母,你想要与孩子们的互动时间增加并提高生活的质量&…

ChatGPT + DALL·E 3

参考链接: https://chat.xutongbao.top/

Linux中安装部署环境(JAVA)

目录 在Linux中安装jdk 包管理器yum安装jdk JDK安装过程中的问题 验证安装jdk 在Linux中安装tomcat 安装mysql 在Linux中安装jdk jdk在Linux中的安装方式有很多种, 这里介绍最简单的方法, 也就是包管理器方法: 包管理器yum安装jdk Linux中常见的包管理器有: yumaptp…

图论| 827. 最大人工岛 127. 单词接龙

827. 最大人工岛 题目:给你一个大小为 n x n 二进制矩阵 grid 。最多 只能将一格 0 变成 1 。返回执行此操作后,grid 中最大的岛屿面积是多少? 岛屿 由一组上、下、左、右四个方向相连的 1 形成。 题目链接:[827. 最大人工岛](ht…

前端为什么要工程化

前端为什么要工程化 文章目录 前端为什么要工程化传统开发的弊端一个常见的案例更多问题 工程化带来的优势开发层面的优势团队协作的优势统一的项目结构统一的代码风格可复用的模块和组件代码健壮性有保障团队开发效率高 求职竞争上的优势 现在前端的工作与以前的前端开发已经完…

深度学习交通车辆流量分析 - 目标检测与跟踪 - python opencv 计算机竞赛

文章目录 0 前言1 课题背景2 实现效果3 DeepSORT车辆跟踪3.1 Deep SORT多目标跟踪算法3.2 算法流程 4 YOLOV5算法4.1 网络架构图4.2 输入端4.3 基准网络4.4 Neck网络4.5 Head输出层 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 *…

Linux 时区设置

对于服务器来说,linux的时区影响着运行之上的数据库和后端程序的时区 应该和数据库和后端及其他程序的时区保持一致 其他相关时区的设置 pgsql时区设置: php时区设置: 1.显示当前的时间和时区 date结果类似下面,图中显示的是ut…

球幕投影有哪些常见的物理表现形式?

近年来,投影技术不断发展完善,给内容的表达方式带来了突破,使其展示形式不再局限于平面,即使在弧面、球面等异形幕墙上,也能呈现出令人惊叹的视觉画面。其中球幕投影备受关注,它以半球形屏幕将图像投影到球…

Selenium安装WebDriver(含116/117/118/119)

1、确认浏览器的版本 在浏览器的地址栏,输入chrome://version/,回车后即可查看到对应版本 2、找到对应的chromedriver版本 2.1 114及之前的版本可以通过点击下载chromedriver,根据版本号(只看大版本)下载对应文件 2.2 116版…

解决 VS2022 关于 c++17 报错: C2131 表达式必须含有常量值

使用 VS2022 编译 ORB-SLAM3 加载Vocabulary 二进制ORBvoc.bin 时,在 DBOW2 里修改 TemplatedVocabulary.h 代码显示这样的错误: 编译器错误 C2131 表达式的计算结果不是常数 定位到我的代码中: char buf [size_node] ; 原因 : …

PyTorch - 高效快速配置 Conda + PyTorch 环境 (解决 segment fault )

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/134463035 在配置算法项目时,因网络下载速度的原因,导致默认的 conda 与 pytorch 包安装缓慢,需要配置新的 co…

zabbix-proxy分布式监控

Zabbix是一款开源的企业级网络监控软件,可以监测服务器、网络设备、应用程序等各种资源的状态和性能指标。在大型环境中,如果只有一个Zabbix Server来监控所有的节点,可能会遇到性能瓶颈和数据处理难题。 为了解决这个问题,Zabbi…

美创科技与南京大数据安全技术有限公司达成战略合作

近日,美创科技与南京大数据安全技术有限公司正式签署战略合作协议,优势力量共享、共拓共创共赢。 美创科技CEO柳遵梁、副总裁罗亮亮、副总裁王利强,南京大数据安全技术有限公司总经理潘杰、市场总监刘莉莎、销售总监王皓月、技术总监薛松等出…

快速上手 TypeScript

什么是TypeScript TypeScript 简称 TS ,既是一门新语言,也是 JS 的一个超集,它是在 JavaScript 的基础上增加了一套类型系统,它支持所有的 JS 语句,为工程化开发而生,最终在编译的时候去掉类型和特有的语法…

STM32电源名词解析

先来简单了解一下各种电源端口的命名 VCC:Ccircuit 表示电路的意思, 即接入电路的电压 VDD:Ddevice 表示器件的意思, 即器件内部的工作电压。 VSS:Sseries 表示公共连接的意思,通常指电路公共接地端电压。 GND:在电…

Eclipse切换中文环境

PACK包链接 地址,进入后可以看到不同版本的包。 要选择跟自己Eclipse版本一致的包,比如我的Eclipse启动界面如下,我就要找Helios的包( Juno、Indigo、Helios、Kepler这些具体怎么划分的我也不清楚)。 在线安装 打…

七、Nacos和Eureka的区别

一、nacos注册中心 二、临时实例与非临时实例 三、区别 Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式临时实例心跳不正常会被剔除,非临时实例则不会被剔除Nacos支持服务列表变更的消息推送模式,服务…

redis五大常见数据结构的操作命令(string, hash, list, set和zset)

string redis的string,直接按照二进制(不做任何的转换,存的是什么取出来的依旧是什么)的方式存储。所以string不仅仅可以存储文本数据,还可以存储整数,JSON,xml甚至音视频。但是string的大小最…