当前位置: 首页 > news >正文

uni-app App版本更新

效果图:

       

前言

在移动应用开发中,确保用户能够及时更新到最新版本是非常重要的。本文将介绍如何在 uni-app 中实现 App 整包更新功能,并提供相关代码示例以帮助理解。

代码实现

2.1 引入模块

首先,我们需要引入用于处理更新的模块(App.vue文件里面-如下图):

import appUpdate from '@/uni_modules/leruge-app-update/js_sdk/leruge-app-update.js';

引入地址:@/uni_modules/leruge-app-update/js_sdk/leruge-app-update.js文件

gitee地址:app_document: App小功能文件模块

2.2 定义更新函数

     这段代码是一个接口请求(看不明白的可以看去主页看一下接口封装:https://blog.csdn.net/weixin_46166771/article/details/135764183?spm=1001.2014.3001.5501)

async loadData() {const that = this;// 获取应用的版本信息plus.runtime.getProperty(plus.runtime.appid, async function (wgtinfo) {try {// 调用接口检查更新const res = await that.$request({url: myApi.appUpdate, //引入接口文件method: 'GET',data: {version: wgtinfo.version},});console.log(res);// 如果返回结果为200,说明有新版本if (res.code == 200) {const updateInfo = {platform: 'android', // 更新平台updateContent: '更新提示,检测到最新版本', // 更新提示内容downUrl: res.result, // 下载链接force: false, // 是否强制更新mainColor: 'FF5B78' // 主色调};// 执行更新appUpdate(updateInfo);}} catch (e) {// 错误处理console.log(`这个接口错误:${myApi.appUpdate}`, e);} finally {// 可以在这里执行一些清理或结束操作}});
}

2.3 代码解析

2.3.1 获取版本信息

我们使用 plus.runtime.getProperty 方法获取当前应用的版本信息。这对于后续的更新检查至关重要,因为它帮助我们识别用户当前的应用版本。

plus.runtime.getProperty(plus.runtime.appid, async function (wgtinfo) { // ... });
2.3.2 发起更新请求

如果服务器返回状态码 200,说明有新版本可供更新。此时,我们构建更新信息对象 updateInfo,并调用 appUpdate 函数开始更新流程。

if (res.code == 200) {const updateInfo = {platform: 'android', // 更新平台updateContent: '更新提示,检测到最新版本', // 更新提示内容downUrl: res.result, // 下载链接force: false, // 是否强制更新mainColor: 'FF5B78' // 主色调};appUpdate(updateInfo);
}

App.vue文件全部代码

<script>import Vue from 'vue'import myApi from '@/utils/app.js' //调用接口使import appUpdate from '@/uni_modules/leruge-app-update/js_sdk/leruge-app-update.js'export default {onLaunch: function() {this.loadData()  //更新app控制},methods: {async loadData() { // 热更新const that =thisplus.runtime.getProperty(plus.runtime.appid,async function(wgtinfo) {try {const res = await that.$request({url: myApi.appUpdate,method: 'GET',data: {version:wgtinfo.version},});console.log(res)if (res.code == 200) {const updateInfo = {platform: 'android',updateContent: '更新提示,检测到最新版本',downUrl: res.result,force: false,mainColor: 'FF5B78'}appUpdate(updateInfo)}} catch (e) {// 失败执行console.log(`这个接口错误:${myApi.goodsList}`)} finally {// 销毁执行}})	},}}
</script><style lang="scss">/*每个页面公共css */</style>

相关文章:

  • C语言习题~day33
  • react通过下拉框选择多个,并展示在下方的方式
  • 【工具分享】Darkside勒索病毒解密工具
  • 每天五分钟深度学习框架pytorch:激活函数在神经网络中的应用
  • 数据结构—(java)反射,枚举,lambda表达式
  • 开发受用户喜欢有声听书APP:快速满足用户需求的秘诀
  • [PICO VR眼镜]眼动追踪串流Unity开发与使用方法,眼动追踪打包报错问题解决(Eye Tracking/手势跟踪)
  • 使用 LlamaIndex 进行 CRAG 开发用来强化检索增强生成
  • python 将 aac 转为 mp3,保持原有目录结构
  • Spring 全家桶使用教程 —— 后端开发从入门到精通
  • 江协科技STM32学习- P19 TIM编码器接口
  • 深入理解函数【JavaScript】
  • WPF项目中使用Caliburn.Micro框架实现日志和主题切换
  • ubuntu20.04系统安装zookeeper简单教程
  • 【PostgreSQL】PostgreSQL数据库允许其他IP连接到数据库(Windows Linux)
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 30秒的PHP代码片段(1)数组 - Array
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Apache Zeppelin在Apache Trafodion上的可视化
  • JavaScript 奇技淫巧
  • Javascript编码规范
  • java取消线程实例
  • JSONP原理
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • mongo索引构建
  • Redash本地开发环境搭建
  • 高程读书笔记 第六章 面向对象程序设计
  • 前端代码风格自动化系列(二)之Commitlint
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 入门到放弃node系列之Hello Word篇
  • 使用Swoole加速Laravel(正式环境中)
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 译米田引理
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • # windows 安装 mysql 显示 no packages found 解决方法
  • #QT(串口助手-界面)
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (52)只出现一次的数字III
  • (AtCoder Beginner Contest 340) -- F - S = 1 -- 题解
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C语言)fgets与fputs函数详解
  • (二)JAVA使用POI操作excel
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (转载)OpenStack Hacker养成指南
  • *setTimeout实现text输入在用户停顿时才调用事件!*
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .NET 的程序集加载上下文
  • .Net 应用中使用dot trace进行性能诊断
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .net和php怎么连接,php和apache之间如何连接
  • .NET中 MVC 工厂模式浅析