uniapp打包APP实现应用内整包更新或热更新

news2024/11/23 22:13:40

思路:

1.首先要理解更新方式的区别 静默更新、弱更新以及强制更新。

APP更新机制-静默更新、弱更新、强更新 - 知乎

2.其次要理解不同更新方式要用到的插件----------这里推荐插件应用市场的插件。

app升级、整包更新和热更新组件 支持vue3 支持打开安卓、苹果应用市场,wgt静默更新 - DCloud 插件市场

3.一般来说每个APP自行发布后台管理系统一般要有放置APP信息的菜单。

4. 最后要和后端进行沟通返回的APP信息,前端在APP.vue文件进行根据个人需求进行操作。

注意:

1.仔细阅读插件市场的文档,非常可靠。

2.如果是wgt热更新那么下载地址必须以wgt结尾,否则会提示错误。如果是整包更新安卓必须是apk结尾的网址,否则会跳到浏览器下载。

3.特别强调后端返回的格式以及字段必须和组件内一致。

操作流程

1.首先进入插件市场,导入此插件到项目中。(导入插件时会有提示是否注册page,选择是,但不能是第一项

 2.其次在App.vue文件进行初始化信息配置。

 3.这里我用的是模拟接口数据来测试的。---后期需要换成后端返回的数据

updateAPPTest() {
				//#ifdef APP-PLUS
				// 获取本地应用资源版本号
				plus.runtime.getProperty(plus.runtime.appid, (inf) => {
					//获取服务器的版本号
					const data = {
						// 版本更新内容 支持<br>自动换行
						describe: '1. 修复已知问题 <br/> 2. 优化用户体验1 ',
						edition_url: 'http://192.1.1.48:80/sc.apk', //apk、wgt包下载地址或者应用市场地址  安卓应用市场 market://details?id=xxxx 苹果store itms-apps://itunes.apple.com/cn/app/xxxxxx
						edition_force: 0, //是否强制更新 0代表否 1代表是
						package_type: 0, //0是整包升级(apk或者appstore或者安卓应用市场) 1是wgt升级
						edition_issue: 1, //是否发行  0否 1是 为了控制上架应用市场审核时不能弹出热更新框
						edition_number: 101, //版本号 最重要的manifest里的版本号 (检查更新主要以服务器返回的edition_number版本号是否大于当前app的版本号来实现是否更新)
						edition_name: '1.0.1', // 版本名称 manifest里的版本名称
						edition_silence: 0, // 是否静默更新 0代表否 1代表是
					}
					//res.data.xxx根据后台返回的数据决定(我这里后端返回的是data),所以是res.data.data 
					//判断后台返回版本号是否大于当前应用版本号 && 是否发行 (上架应用市场时一定不能弹出更新提示)
					if (Number(data.edition_number) > Number(inf.versionCode) && data.edition_issue == 1) {
						console.log('找到新版本')
						//如果是wgt升级,并且是静默更新 (注意!!! 如果是手动检查新版本,就不用判断静默更新,请直接跳转更新页,不然点击检查新版本后会没反应)
						if (data.package_type == 1 && data.edition_silence ==
							1) {
							//调用静默更新方法 传入下载地址
							silenceUpdate(data.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(data)
							});
						}
					} else {
						console.log('已经是最新版本了')
						
						// 如果是手动检查新版本 需开启以下注释
						uni.showModal({
							title: '提示',
							content: '已是最新版本',
							showCancel: false
						})
					}

				});

				//#endif    
			},

注意后端返回的字段结果信息:

data:{
    // 版本更新内容 支持<br>自动换行
    describe: '1. 修复已知问题<br>
                2. 优化用户体验', 
    edition_url: '', //apk、wgt包下载地址或者应用市场地址  安卓应用市场 market://details?id=xxxx 苹果store itms-apps://itunes.apple.com/cn/app/xxxxxx
    edition_force: 0, //是否强制更新 0代表否 1代表是
    package_type: 1, //0是整包升级(apk或者appstore或者安卓应用市场) 1是wgt升级
    edition_issue:1, //是否发行  0否 1是 为了控制上架应用市场审核时不能弹出热更新框
    edition_number:100, //版本号 最重要的manifest里的版本号 (检查更新主要以服务器返回的edition_number版本号是否大于当前app的版本号来实现是否更新)
    edition_name:'1.0.0',// 版本名称 manifest里的版本名称
    edition_silence:0, // 是否静默更新 0代表否 1代表是
}

4.看下实现效果(这里演示的是应用内安卓整包更新)

 

 

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

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

相关文章

使用 SMT求解机 根据变迁关系生成迁移后系统的状态

本文的例子来源于2011年发布的论文 IC3: Where Monolithic and Incremental Meet 文章目录 Ⅰ、变迁系统的介绍状态图变迁公式 Ⅱ、SMT求解机简介公式的计算计算另一状态 结果展示参考文献 Ⅰ、变迁系统的介绍 状态图 论文中给出了一个系统的状态迁移图和它的的变迁公式。现在…

【近场社交项目】数据库系统期末设计——概念设计部分

数据库系统期末设计——概念设计部分&#x1f60e; 前言&#x1f64c;项目设计&#xff08;1&#xff09;各个实体属性ER图&#xff08;2&#xff09;各个业务功能的ER图 总结撒花&#x1f49e; &#x1f60e;博客昵称&#xff1a;博客小梦 &#x1f60a;最喜欢的座右铭&#x…

【Redis】特殊数据类型 Geo (地理位置)

&#x1f3af;前言 除了五中基本的数据类型外&#xff0c;Redis还支持两种特殊的数据类型&#xff0c;第一种 Geo (地理位置)&#xff1a;用于存储地理位置相关的数据&#xff0c;例如经纬度、距离等。第二种 Stream (流)&#xff1a;是一个高级的列表类型&#xff0c;支持对列…

Python基于pandas库导出excel文件

将Pandas数据框架导出到Excel文件中 让我们看看如何将Pandas数据框架导出到Excel文件中。 实列代码&#xff1a; import time import pandas as pd from io import BytesIO from flask import make_response,def export_navi():# 所有DataFrame合并集合df_list []# 创建一个数…

理工大学|校企联手创典范,布局存储新未来

某理工大学地质灾害防治与地质环境保护国家重点实验室的前身是1989年由原国家计委、国家教委批准&#xff0c;在某理工大学&#xff08;原某地质学院&#xff09;“地质工程”国家重点学科基础上建立的国家专业实验室&#xff0c;该实验室是我国地质灾害防治领域目前唯一的国家…

唯一无副作用禁用Win10/11更新方法,一键暂停1000周

作为一个现代化的系统&#xff0c;Windows 很早便配备了自动更新功能以快速获取新功能、修复安全漏洞。 不过到实际使用中嘛&#xff0c;自动弹出、重启自动进行、新版本大量 Bug … 体验十分糟糕。 种种原因导致&#xff0c;经常就有朋友要禁止 Win10/11 自动更新方法。 我们…

MySQL-存储函数练习

创建表并插入数据 ​ 字段名 数据类型 主键 外键 非空 唯一 自增 ​ id INT 是 否 是 是 否 ​ name VARCHAR(50) 否 否 是 否 否 ​ glass VARCHAR(50) 否 否 是 否 否mysql>…

vue项目启动前端时让本地局域网其他设备访问本项目时的配置

文章目录 编辑package.json优化 编辑package.json "dev": "vite --host [本机ip]" ,案例 优化 这样的话实用性更好&#xff0c;我们访问的话依然可以正常访问服务端的ip "dev": "vite --host 0.0.0.0" ,

Kylin麒麟系统设置开机自动登录roo账户

1.安装麒麟系统后&#xff0c;默认root用户是不开启的&#xff0c;首先得设置root用户密码命令。 sudo passwd root 此时会要求输入密码&#xff0c;输入您当前用户登录密码即可。 2.以root权限修改 /usr/share/lightdm/lightdm.conf.d/60-kylin.conf 文件,如提示输入密码&am…

itheima苍穹外卖项目学习笔记--Day1:项目介绍与开发环境搭建

苍穹外卖 Day1:a. 项目概述b. 开发环境搭建(1). 前端环境搭建(2). 后端环境搭建(3). 前后端联调 c. 完善登录功能d. Swagger Day1: a. 项目概述 b. 开发环境搭建 (1). 前端环境搭建 前端工程基于 nginx 运行启动nginx&#xff1a;双击 nginx.exe 即可启动 nginx 服务&#x…

用C语言进行学生成绩排序(简单选择排序和对堆排序)

一.选择排序 选择排序的基本思想是:每一趟(如第i趟)在后面n-i1 (i1,2…,n-1) 个待排序元素中选取关键字最小的元素&#xff0c;作为有序子序列的第i个元素&#xff0c;直到第n-1趟做完&#xff0c;待排序元素只剩下1个&#xff0c;就不用再选了。选择排序中的堆排序算法是历年考…

IDEA配置Maven教程

IDEA配置Maven教程 &#x1f495;1、mavne的下载&#x1f495;2、maven的安装&#x1f49e;3、配置Maven环境变量&#x1f49e;4、配置 Maven 本地仓库存放路径&#x1f496; 5、settings.xml配置&#xff1b;&#x1f496;6、IDEA配置maven&#xff1b;&#x1f496;7、清理下…

不容小觑:MES系统上线后绝对不能大意的几点

随着工业自动化和信息化的普及&#xff0c;制造执行系统&#xff08;MES&#xff09;已经成为现代制造企业的重要组成部分。然而&#xff0c;即使在实施MES系统之后&#xff0c;企业仍然不能掉以轻心。本文将探讨MES系统上线后需要引起注意的几个方面&#xff0c;以帮助企业更好…

SolidWorks如何切换语言选项

一些工程师的电脑上安装的上英文操作系统&#xff0c;这种操作系统如果安SolidWorks的话&#xff0c;即已经安装上中文语言包&#xff0c;但打开SolidWorks后&#xff0c;其界面还是英文界面。如何在英文Windows操作系统中运行中文版的SolidWorks呢&#xff1f; 照成以上问题可…

Maven下载和配置教程:Windows、Mac和Linux系统安装指南

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

JDBC技术概述

1.1 JDBC技术概述 Java Database Connectivity 简称JDBC&#xff0c;是Java数据库连接的技术。是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口&#xff0c;提供了诸如查询和更新数据库中数据的方法。 JDBC是Java访问数据库的标准规则&#xff0c;可以为不同的…

数据结构与算法——时间复杂度和空间复杂度(详解版)

在学习具体的数据结构和算法之前&#xff0c;每一位初学者都要掌握一个技能&#xff0c;即善于运用时间复杂度和空间复杂度来衡量一个算法的运行效率。 所谓算法&#xff0c;即解决问题的方法。同一个问题&#xff0c;使用不同的算法&#xff0c;虽然得到的结果相同&#xff0…

记一次 频繁Full GC JVM调优

记一次 频繁Full GC JVM调优 背景 观察服务监控平台的时候发现&#xff0c;几乎 20分钟就会触发一次 Full GC&#xff1b; 问题定位 因为对我们系统JVM参数都很熟悉&#xff0c;所以问题定位很快&#xff0c;通过监控就定位到 每次触发FullGC 的时间 都与MetaSapceSize达到…

Elasticsearch原理剖析

一、 Elasticsearch结构 Elasticsearch集群方案由EsMaster、EsClient和EsNode1、EsNode2、EsNode3、EsNode4、EsNode5、EsNode6、EsNode7、EsNode8、EsNode9进程组成&#xff0c;如下图所示&#xff0c;模块说明如表下所示。 说明如表&#xff1a; 名称说明ClientClient使用H…

统计连续字符-2022年全国青少年信息素养大赛Python国赛第7题

[导读]&#xff1a;超平老师计划推出《全国青少年信息素养大赛Python编程真题解析》50讲&#xff0c;这是超平老师解读Python编程挑战赛真题系列的第9讲。 全国青少年信息素养大赛&#xff08;原全国青少年电子信息智能创新大赛&#xff09;是“世界机器人大会青少年机器人设计…