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.rhkb.cn/news/195895.html

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

相关文章

如何使用ONLYOFFICE来P惊悚特效图

如何使用ONLYOFFICE来P惊悚特效图 老朋友们可能会经常看见本号主又换头像了,各种各样精神分裂成一群人或者我和自己俩个人的头像,之前讲过的: 手把手教你如何自己一个人精神分裂成一群人https://mp.weixin.qq.com/s/yacKt7N3sZnarfMhXRNdBA…

零代码编程:用ChatGPT自动合并多个Word文件

一个文件夹中有多个docx格式的word文档: 想要把它们都合并成一个文件,然后打印,可以在ChatGPT中输入提示词: 你是一个Python编程专家,要完成一个处理word内容的任务,具体步骤如下: 打开文件夹…

redis实战篇(2)

优惠卷秒杀 通过本章节,我们可以学会Redis的计数器功能, 结合Lua完成高性能的redis操作,同时学会Redis分布式锁的原理,包括Redis的三种消息队列 3、优惠卷秒杀 3.1 -全局唯一ID 每个店铺都可以发布优惠券: 当用户抢…

EMNLP2023 | 基于显式证据推理的few-shot关系抽取CoT

深度学习自然语言处理 原创作者:wkk 论文:Chain of Thought with Explicit Evidence Reasoning for Few-shot Relation Extraction地址:https://arxiv.org/abs/2311.05922 摘要 Few-shot关系提取涉及使用有限数量的注释样本识别文本中两个特定…

肖sir__linux讲解(2.1)

linux命令 cp 复制命令 a、cp 原文件名称 新文 件名称(不存在的文件) 案例:cp a k 截图: b.cp 原文件名称 原有文 件名称(存在的文件) 案例:cp a b 截图: c、cp 指定路径复制 格式&#xff…

目标检测—YOLO系列(二 ) 全面解读论文与复现代码YOLOv1 PyTorch

精读论文 前言 从这篇开始,我们将进入YOLO的学习。YOLO是目前比较流行的目标检测算法,速度快且结构简单,其他的目标检测算法如RCNN系列,以后有时间的话再介绍。 本文主要介绍的是YOLOV1,这是由以Joseph Redmon为首的…

802.1Qbb

[TOC] 802.1Qbb 802.1Qbb是什么? 802.1Qbb(基于优先级的流控制,PFC)是以太网数据中心中一项重要的标准,用于提供无丢包的网络环境。这项标准是IEEE 802.1Q标准的一部分,旨在解决以太网数据中心网络中的拥…

vue3 + ts项目(无vite)报错记录

记录项目创建后遇到的报错 1.类型“Window & typeof globalThis”上不存在属性“_CONFIG”。ts(2339) 问题描述: 使用全局 window 上自定义的属性,TypeScript 会报属性不存在 解决:需要将自定义变量扩展到全局 window 上&#xff0c…

数据分析场景下,企业如何做好大模型选型和落地?

在数据驱动的数字化时代,有效的数据分析已成为企业成功的关键因素。而随着大模型带来能力突破,让AI与数据分析相互结合,使分析结果更好支撑业务,促进企业内部数据价值释放,成为了当下企业用户尤为关注的话题。 如何按照…

PPT转PDF转换器:便捷的批量PPT转PDF转换软件

在数字化时代,文档转换已成为日常工作不可或缺的一环。特别是对于那些需要转发或发布演示文稿的人来说,如果希望共享给他人的PPT文件在演示过程中不被修改,那么将PPT文件转换为PDF格式已经成为一个常见的选择。大多数PDF阅读器程序都支持全屏…

在Rust编程中使用泛型

1.摘要 Rust中的泛型可以让我们为像函数签名或结构体这样的项创建定义, 这样它们就可以用于多种不同的具体数据类型。下面的内容将涉及泛型定义函数、结构体、枚举和方法, 还将讨论泛型如何影响代码性能。 2.在函数定义中使用泛型 当使用泛型定义函数时,本来在函…

Flutter笔记:桌面应用 窗口定制库 bitsdojo_window

Flutter笔记 桌面应用窗口管理库 bitsdojo_window 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/13446…

吴恩达《机器学习》8-7:多元分类

在机器学习领域,经常会遇到不止两个类别的分类问题。这时,需要使用多类分类技术。本文将深入探讨多类分类,并结合学习内容中的示例,了解神经网络在解决这类问题时的应用。 一、理解多类分类 多类分类问题是指当目标有多个类别时…

stable diffusion comfyui的api使用教程

一、为什么要使用comfyui的api?对比webui的api,它有什么好处? 1、自带队列 2、支持websocket 3、无需关心插件是否有开放api接口,只要插件在浏览器中可以正常使用,接口就一定可以使用 4、开发人员只需关心绘图流程的搭建 5、切换…

Leetcode—3.无重复字符的最长子串【中等】

2023每日刷题&#xff08;三十二&#xff09; Leetcode—3.无重复字符的最长子串 实现代码 class Solution { public:int lengthOfLongestSubstring(string s) {unordered_set<char> smap;int maxlen 0;int left 0;for(int i 0; i < s.size(); i) {while(smap.fi…

【算法】距离(最近公共祖先节点)

题目 给出 n 个点的一棵树&#xff0c;多次询问两点之间的最短距离。 注意&#xff1a; 边是无向的。所有节点的编号是 1,2,…,n。 输入格式 第一行为两个整数 n 和 m。n 表示点数&#xff0c;m 表示询问次数&#xff1b; 下来 n−1 行&#xff0c;每行三个整数 x,y,k&am…

【开源】基于Vue和SpringBoot的民宿预定管理系统

项目编号&#xff1a; S 058 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S058&#xff0c;文末获取源码。} 项目编号&#xff1a;S058&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 用例设计2.2 功能设计2.2.1 租客角色…

2023.11.17-hive调优的常见方式

目录 0.设置hive参数 1.数据压缩 2.hive数据存储格式 3.fetch抓取策略 4.本地模式 5.join优化操作 6.SQL优化(列裁剪,分区裁剪,map端聚合,count(distinct),笛卡尔积) 6.1 列裁剪: 6.2 分区裁剪: 6.3 map端聚合(group by): 6.4 count(distinct): 6.5 笛卡尔积: 7…

基于JavaWeb+SpringBoot+掌上社区疫苗微信小程序系统的设计和实现

基于JavaWebSpringBoot掌上社区疫苗微信小程序系统的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 随着我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种…

.net core中前端vue HTML5 History 刷新页面404问题

放到启动的应用程序的最后面 app.Run(async (context) > {context.Response.ContentType "text/html";await context.Response.SendFileAsync(Path.Combine(env.WebRootPath, "index.html")); });https://blog.csdn.net/lee576/article/details/88355…