uniapp App强制更新

需要使用DClound插件市场的一个插件挺好用的!
app升级、整包更新和热更新组件 支持vue3 支持打开安卓、苹果应用市场,wgt静默更新https://ext.dcloud.net.cn/plugin?id=7286

开始贴代码

// @/utils/method.js/*** 获取当前app最新版本* @param number versionCode 当前app的版本号*/
export function getAppCurrentVersion(versionCode) {return new Promise(async (resolve, reject) => {const params = {// android或者iossystem: uni.$u.os() == 'ios' ? 1 : 0,// 版本号 如:100editionNumber: versionCode || ''}// 需要改成自己的服务端的获取app最新版本的接口...// 接口返回值要跟要求的字段一样const res = await getAppVersion(params)resolve(res.data)})
}// #ifdef APP-PLUS
// app端强制更新
export function checkAppUpdate() {getAppCurrentVersion().then(data => {const obj = {system: data.system,describe: data.describe, // 版本更新内容edition_url: data.editionUrl, // apk、wgt包下载地址或者应用市场地址edition_force: data.editionForce, // 是否强制更新 0代表否 1代表是package_type: data.packageType, // 0是整包升级(apk或者appstore或者安卓应用市场) 1是wgt升级edition_issue: data.editionIssue, // 是否发行 0否 1是 为了控制上架应用市场审核时不能弹出热更新框// 版本号 最重要的manifest里的版本号 (检查更新主要以服务器返回的edition_number版本号是否大于当前app的版本号来实现是否更新)edition_number: data.editionNumber,edition_name: data.editionName, // 版本名称 manifest里的版本名称edition_silence: data.editionSilence // 是否静默更新 0代表否 1代表是}plus.runtime.getProperty(plus.runtime.appid, (inf) => {// 判断后台返回版本号是否大于当前应用版本号 && 是否发行(上架应用市场时一定不能弹出更新提示)if (Number(obj.edition_number) > Number(inf.versionCode) && obj.edition_issue == 1) {/*** 如果是wgt升级,并且是静默更新* 注意!如果是手动检查新版本,就不用判断静默更新,请直接跳转更新页,不然点击检查新版本后会没反应*/if (obj.package_type == 1 && obj.edition_silence == 1) {// 调用静默更新方法 传入下载地址silenceUpdate(obj.edition_url)} else {/*** 跳转更新页面* 注意!如果pages.json第一页的代码里有一打开就跳转其他页面的操作,下面这行代码最好写在setTimeout里面设置延时3到5秒再执行*/uni.navigateTo({url: '/uni_modules/rt-uni-update/components/rt-uni-update/rt-uni-update?obj=' + JSON.stringify(obj)})}} else {// 如果是手动检查新版本 需开启以下注释// uni.showModal({// 	title: '提示',// 	content: '已是最新版本',// 	showCancel: false// })}})})
}
// #endif// #ifdef MP-WEIXIN
// 微信小程序更新检测
export function checkUpdate() {// 获取更新管理器对象const updateManager = uni.getUpdateManager()updateManager.onCheckForUpdate(res => {if (res.hasUpdate) {updateManager.onUpdateReady(() => {uni.showModal({title: '更新提示',content: '新版本已经准备好,点击确定重新启动',showCancel: false,success: res => {if (res.confirm) {updateManager.applyUpdate()}}})})updateManager.onUpdateFailed(() => {uni.showModal({title: '提示',content: '检查到有新版本,但是下载失败,请检查网络设置',showCancel: false})})}})
}
// #endif

然后在 App.vue 页面 下的 onShow 方法调用前面的方法

// App.vueimport { checkAppUpdate, checkUpdate } from '@/utils/method.js'
export default {onShow() {// #ifdef MP-WEIXINcheckUpdate()// #endif// #ifdef APP-PLUScheckAppUpdate()// #endif}
}

附带个检测微信小程序的更新~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/18614.html

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

相关文章

博客质量分计算——发布 version 5.0

目录 1. 背景2. 质量分 version 5.02.1 version 4 存在问题分析2.2 version 5.0 改进2.3 消融分析2.3.1 正向积极得分消融实验2.3.2 正向累积得分单变量实验2.3.3 非高分文章消融实验 2.4 V4 和 V5.0 版本质量分分布对比 3. 总结4. 参考 1. 背景 博客质量分顾名思义是用于衡量…

Debezium系列之:prometheus采集debezium的jmx数据,grafana通过dashboard展示debezium的jmx数据

Debezium系列之:prometheus采集debezium的jmx数据,grafana通过dashboard展示debezium的jmx数据 一、需求背景二、实现的效果三、导出debezium jmx四、debezium jmx重要指标五、部署prometheus和grafana六、Debezium MySQL Connector的dashboard七、debezium-dashboard.json八…

【单片机】msp430f5529 万年历,数字时钟,矩阵键盘修改时间,7针OLED显示,内部温度读取

文章目录 功能实物图原理图一些程序片段矩阵键盘内部温度读取将年月日转为星期 功能 1 显示万年历,利用内部RTC模块 2 按键修改时间 3 显示芯片内部的温度数值 实物图 原理图 一些程序片段 矩阵键盘 https://qq742971636.blog.csdn.net/article/details/1316505…

【新版系统架构】第十八章-安全架构设计理论与实践

信息安全体系架构设计 信息系统安全设计重点考虑:系统安全保障体系,信息安全体系架构 系统安全保障体系: 安全区域策略的确定,根据安全区域的划分,主管部门应制定针对性的安全策略统一配置和管理防病毒系统&#xff…

【Linux系统编程】Linux下的编译器——gcc/g++的使用 及 动态库和静态库的认识

文章目录 1. 概念2. gcc 的使用2.1 预处理(预编译)2.2 编译2.3 汇编2.4 链接 3. 动态库和静态库3.1 动静态库的理解3.2 默认是动态链接,我们如何进行静态 这篇文章我们继续学习Linux中的开发工具,今天要学的是: Linux下…

数据备份与恢复

目录 数据备份 1、备份单个数据库中的所有表 2、备份数据库中的某些表 3、备份所有数据库 4、只备份emp表结构 数据库恢复 方法1:使用mysql 命令恢复 方法2:进入数据库,使用source加载备份文件恢复 MySQL表的导入导出 数据备份 MySQLdump备份数据库语句的…

对RAM和ROM的理解

什么是RAM、ROM? RAM(Random Access Memory)随机存取存储器 ROM(Read Only Memory)只读存储器 先记住一件事 RAM断电将失去数据 ROM断电仍会保留数据 RAM、ROM、Flash、内存条、硬盘、SD卡到底怎么归类? 我们先来看下计算机的原理和计算机的需求 …

国网技术学院MySQL课堂练习

一、数据库的安装和配置 在虚拟机中安装WINDOWS7操作系统 正常安装,查询安装教程即可安装必备组件和MYSQL5.7数据库 正常安装,查询安装教程即可修改my.ini配置文件中关于character_set的相关设置 直接补下面的代码即可,作用为设置默认的内…

SpringBoot集成Flowable工作流

SpringBoot集成Flowable工作流 Flowable是什么?一、添加依赖二、flowable配置三、定义流程文件1.使用流程文件定义工作流2.idea使用插件来定义流程图1.安装插件2.创建bpmn文件并画流程图3.右击流程用模型设计器打开文件 四、测试controller Flowable是什么&#xff…

数据结构 - 线性表(C语言版)

线性表分为顺序表和单链表 线性表的操作主要是查询、插入、删除 1、顺序表 首先,定义一个顺序表的结构体 #define MAX_SIZE 10 typedef struct {int data[MAX_SIZE];int length; }SqList, * PsqList;创建一个顺序表 //创建顺序表 void createSqList(PsqList pSq…

【Excel】csv乱码

原因 CSV用UTF-8编码 Excel用ANSI编码 解决 1 创建一个新的Excel 2 数据 > 从文本/CSV 3 选择文件 4 选择 文件原始格式 和 分隔符 (根据自己文件进行选择,如果不知道编码,可以一个一个的试,直到不出现乱码)

CCLINK转MODBUS-TCP网关cclink利modbus区别

大家好,今天我们要聊的是生产管理系统中的CCLINK和MODBUS-TCP协议,它们的不同使得数据互通比较困难,但远创智控YC-CCLK-TCP网关的出现改变了这一切。 1, 远创智控YC-CCLK-TCP是一款自主研发的CCLINK从站功能的通讯网关&#xff…