先看官方文档,对uni-app 的资源热更新有一个大致的了解:
整包升级
在线资源热更新
app方法

本文主要讲述,实现资源热更新时客户端需要进行的操作:

可以在***app.vue***的***onLaunch***函数(全局监测)中进行监测,也可以在***index.vue***的***onLoad***事件中监测

代码:

onLaunch(){// #ifdef APP-PLUSthis.checkUpdateApp()// #endif
}//methods中定义的方法async checkUpdateApp() {let that = thislet data = await that.updateInfoBack() || '' //后台接口返回的热更新资源的版本信息const platform = uni.getSystemInfoSync().platformlet version = '',  appName = ""plus.runtime.getProperty(plus.runtime.appid, (widgetInfo) => {version = widgetInfo.version //当前版本信息appName = widgetInfo.name || ''if (data && data.apk_client_force_update == '0') {if (platform == 'android') {if (version != data.apk_client_version) {uni.showModal({title: appName + '更新',content: data.apk_client_intro ? data.apk_client_intro :'修复了一些已知问题以及产品优化',confirmText: '下载更新',success: (res) => {if (res.confirm) {uni.showLoading({title: '正在检查更新,请稍后',mask: true});uni.downloadFile({url: data.apk_client_download,success: (downres) => {if (downres.statusCode === 200) {plus.runtime.install(downres.tempFilePath, {force: false}, () => {uni.hideLoading()console.log('install success...');plus.runtime.restart();}, (e) => {uni.hideLoading()uni.showToast({title: '更新失败',icon: "none",duration: 2200})console.error(e,'install fail...');});}}})} else if (res.cancel) {console.log('用户点击取消');}}});}else if(platform=='ios'){uni.showModal({title: appName + '更新',content: data.ios_client_intro ? data.ios_client_intro :'修复了一些已知问题以及产品优化',confirmText: '下载更新',success: (res) => {if (res.confirm) {plus.runtime.openURL(data.ios_client_download)} else if (res.cancel) {console.log('用户点击取消');}}});}}} else if (data && data.apk_client_force_update == '1') {let intro = '', appurl = '',appVersion = '', updata = ''switch (platform) {case 'android':intro = data.apk_client_introappurl = data.apk_client_downloadappVersion = data.apk_client_versionupdata = data.apk_client_force_updatebreak;case 'ios':intro = data.ios_client_introappurl = data.ios_client_downloadappVersion = data.ios_client_versionupdata = data.ios_client_force_updatebreak;default:console.log('运行在开发者工具上')break;}if (version/1 < appVersion/1) {uni.showModal({title: appName+'更新',confirmText: '立即升级',showCancel: updata == 1 ? false : true,content: intro,success: async function(res) {if (res.confirm) {plus.runtime.openURL(appurl)}}})}}});},//返回更新信息updateInfoBack() {return new Promise((resolve, reject) => {api.updateApp({}, res => {   //后台返回需热更新资源的接口if (res.error == '0') {let data = res.data || null;resolve(data)} else {reject(null)}})})},

图片说明:

关于uni-app的资源热更新!!!相关推荐

  1. 【Unity3D】基于AssetBundle实现资源热更新

    1 前言 Unity3D 本地资源一般放在 Resources 目录下,但是 Resouces 文件夹的大小不能超过 2G,使用 AssetBundle 管理资源可以解决 Resources 文件夹受 ...

  2. Addressable资源热更新疑问

    1)Addressable资源热更新疑问 ​2)如何解决远处网格线会花的问题 3)关于着色器中某些特殊图片的用途 4)Lightmap在内存中有重复加载 5)Unity Job System问题 这是 ...

  3. ZzzFun动漫看番必备App,资源丰富更新快,再见B站大会员

    好久没有推荐黑科技系列了.很多读者都是嗷嗷叫呀.最近好多人问我有没有动漫的好工具. 既然你们有需求,登登就不客气了,是时候展示我真正的实力了. 今天分享的这款工具,从各个角度看都非常的给力. ZzzF ...

  4. 《天涯明月刀》游戏资源热更新解决方案

    天刀在韩国化的过程中,韩方对天刀的游戏内商城功能提出了一系列的适应他们本土运营习惯的商业化改造需求,其中最重要的基础功能修改就是需要商城能够支持不停服修改商品内容或上下架商品,包含新增未事先打进版本配 ...

  5. GameFramework篇:StarForce资源热更新讲解(一:基本流程)

    准备工作: StarForce dev/Update分支 https://github.com/EllanJiang/StarForce/tree/dev/Update 注意下载子库         ...

  6. [unity3d]手游资源热更新策略探讨

    原地址:http://blog.csdn.net/dingxiaowei2013/article/details/20079683 我们学习了如何将资源进行打包.这次就可以用上场了,我们来探讨一下手游 ...

  7. Unity资源热更新

    通过把StreamingAssets文件夹下的本地的资源MD5列表文件复制到persistentDataPath文件夹下和服务器上的进行对比,把有变化的资源更新替换到本地persistentDataP ...

  8. Unity资源热更新--资源管理、Addressable

    实习前理解错了mentor的意思,任务没完成TAT,火速学习一下addressable,另外狠狠吐槽北京健康宝弹窗. 资源打包方式 可热更资源类型:预制件.材质.贴图.模型.场景.shader.动画与 ...

  9. GameFramework篇:StarForce资源热更新讲解(二:具体操作步骤)

    上篇我们讲解了基本的实现流程,那么本篇我们来谈谈实际操作,从零开始一步步配置 先来捋一遍思路 首先,Full目录下的资源是Unity打出来的AssetBundle经过加密(如果选择了Load from ...

最新文章

  1. 使用C++实现一套简单的状态机模型——原理解析
  2. 基于opencV的动态背景下运动目标检测及跟踪(修改版)
  3. eclipse中出现Context startup failed due to previous errors错误解决方法
  4. 腾讯2020校园招聘---假期
  5. docker命令及挂载
  6. “约见”面试官系列之常见面试题之第八十六篇之nexttick(建议收藏)
  7. Spark Streaming中流式计算的困境与解决之道
  8. 基于jedis的Redis工具类
  9. [转载]在ASP.NET MVC中,使用Bundle来打包压缩js和css
  10. linux脚本怎么获取参数,在Bash shell脚本编程中,如何正确无误获取到“脚本选项参数”和“脚本参数”呢?...
  11. 删除高频分量matlab,关于FFT之后怎么提出该频率分量
  12. 基于深度学习和支持向量机的4种苜蓿叶部病害图像识别
  13. Mac 开机没声音了?只需 2 招关闭/恢复Mac开机音效「咚」
  14. Ubuntu 16.04 源添加
  15. 不是愚人节玩笑 Conficker猎获英议会IT系统
  16. Pr视频剪辑软件使用小结
  17. Linux下格式化sd卡和重新分区
  18. 安装CAJViewer时遇到注册模块出现1904错误解决方法
  19. Opencv -- 18图像像素类型转换与归一化
  20. 一个大一程序员的反思

热门文章

  1. Geant4 安装方法
  2. tar.bz2文件解压缩
  3. 在设计四人抢答器中灯全亮_数电课设四路抢答器的设计
  4. Topaz Video AI for mac(视频增强和修复工具)
  5. Arduino ATmega328P
  6. 毕业设计-基于微信小程序的课堂考勤管理系统
  7. 计算机毕业设计之java+springboot基于vue的校园交友网站
  8. 用5分、2分、1分硬币组成一元钱,共有多少方式?
  9. Android文件系统的结构及目录用途、操作方法
  10. 微软苏菲rt能装鸿蒙,微软surfacert平板电脑怎么样 微软surfacert平板电脑性能配置如何...