1.将要打包的的资源和layaairfiles.txt文件一起打成zip.

2.预加载阶段,先将zip包通过downfile下载并解压到缓存目录.

3.设置baseurl,开始预加载所有资源.

4.下面为node.js编写的自动生成layaairfiles.txt的脚本

var fs = require("fs");var cacheData = "";
var tmp = {};
var totalSize = 0;
var nowTime = Date.now();
var BaseUrl = "https://0.0.3/";
var BasePath = "./bin/";
var fileList = fs.readdirSync(BasePath);
tmp["fileUsedSize"] = totalSize;
for(var i=0;i<fileList.length;i++){var file = fileList[i];var stats = fs.statSync(BasePath+file);if(stats.isDirectory()){readFile(BasePath+file+"/",file+"/");}else{totalSize += stats.size;tmp[BaseUrl+file] = {};var data = tmp[BaseUrl+file];data["md5"] = prePath+file;data["readyUrl"] = BaseUrl+file;data["size"] = stats.size;data["times"] = nowTime;var arr = file.split('.');if(arr[1] == "atlas"){data["encoding"] = "utf8";}else{data["encoding"] = "";}}
}
tmp["fileUsedSize"] = totalSize;
var str = JSON.stringify(tmp);
fs.writeFileSync('./layaairfiles.txt',str);function readFile(readurl,prePath){var fileList = fs.readdirSync(readurl);for(var i=0;i<fileList.length;i++){var file = fileList[i];var stats = fs.statSync(readurl+file);if(stats.isDirectory()){readFile(readurl+"/"+file+"/",prePath+file+"/");}else{totalSize += stats.size;tmp[BaseUrl+prePath+file] = {};var data = tmp[BaseUrl+prePath+file];data["md5"] = prePath+file;data["readyUrl"] = BaseUrl+prePath+file;data["size"] = stats.size;data["times"] = nowTime;var arr = file.split('.');if(arr[1] == "atlas"){data["encoding"] = "utf8";}else{data["encoding"] = "";}}}
}

5.将下载下来的zip文件解压到缓存目录

Laya.MiniAdpter.removeAll();
wx.getFileSystemManager().unzip({zipFilePath: res.tempFilePath,targetPath: laya.wx.mini.MiniFileMgr.fileNativeDir,success: () => {this.unzipSuccess();},fail: (res) => {this.unzipFail(res);}
});

转载于:https://www.cnblogs.com/wsswlyy/p/10973653.html

laya zip更新方案相关推荐

  1. React Native 热更新方案

    转载: https://blog.csdn.net/xiangzhihong8/article/details/73201421 随着 React Native 的不断发展完善,越来越多的公司选择使用 ...

  2. 游戏开发(九) 之 纯 lua 版 热更新 方案

    大概看了cocos和quick的更新方案,也挺不错的,但是感觉不太适合自己使用,所以就自己写一套 最早做的时候,我使用的是在c++端完全控制,把需要下载的资源以及lua文件下载完成后再调用engine ...

  3. weex更新方案探索(一)

    created by zhenggl 在项目开发过程中发现: 由于网络的波动不稳定,有时weex在线js加载显示会比较慢甚至加载超时: 而资源在安装包内的本地js的方式,每次有B端页面的改动都需要重新 ...

  4. “真正的”Apk增量更新方案ApkDiffPatch

    "真正的"Apk增量更新方案ApkDiffPatch 作者: HouSisong@gmail.com 2018.03.31 Android的Apk包增量更新原理: 服务端对新旧版本 ...

  5. 基于Quick-cocos2d-x的资源更新方案

    昨天写了一篇关于更新方案的理论 游戏开发:通过路径搜索优先级来进行补丁升级(从端游到手游) 今天继续细化一下 由于新项目采用的是Quick-cocos2d-x,那我就直接给出我基于Quick-coco ...

  6. Hybrid App 跨平台热更新方案实践 附带源码

    前言 移动开发的跨平台与快速发布一直是开发者的追求,也是技术的一个发展趋势,现在各大厂开始有了自己的大前端团队,所以我们也开始了自己的探索,目前来说主要有两种思路: Hybrid App 代表:Cor ...

  7. android热更新插件,与Android热更新方案Amigo的再次接触

    Amigo 作为一个"过气"的的热修复框架,用来学习和了解一下热修复的基本原理还是很好的.本文是本系列的第三篇. 前两篇: 与Android 热更新方案Amigo的初次接触 原作者 ...

  8. iOS 热更新方案 - lance的专栏 - 博客频道 - CSDN.NET

    iOS 热更新方案 - lance的专栏 - 博客频道 - CSDN.NET Weex

  9. Android热更新方案Robust

    美团•大众点评是中国最大的O2O交易平台,目前已拥有近6亿用户,合作各类商户达432万,订单峰值突破1150万单.美团App是平台主要的入口之一,O2O交易场景的复杂性决定了App稳定性要达到近乎苛刻 ...

最新文章

  1. php symfony 安装,Symfony的安装和配置方法
  2. 给定的 columnmapping 与源或目标中的任意列均不匹配_闻歌研究 | 图文自动匹配任务研究调研...
  3. LeetCode之Sum of Two Integers
  4. oracle单表存储记录,oracle从各个表获得数据保存到另一个表
  5. java 判断 nan_判断NaN,js和java中取小数点后几位
  6. Delphi 与 DirectX 之 DelphiX(47): TDIB.DoContrast();
  7. python获取代码当前行数_Python实验室一段日志代码,获取当前调用的函数名和行号...
  8. unity下载教育版_新的现场学习系列为Unity教育工作者提供支持
  9. weka下载后没有安装java_Weka程序原版安装文件[下载指引]
  10. [读书笔记]职场动物进化手册
  11. 河北工程大学计算机类专业排名,河北工程大学优势专业排名,2021年河北工程大学最好的专业排名...
  12. python数据笔记分析_python数据分析入门学习笔记
  13. cache line大小
  14. SpringMVC源码学习
  15. 什么是嵌入式?嵌入式技术应用领域
  16. 5G 空口信令分析指导书
  17. 通过excel文件在arcgis中点转面
  18. Allegro PCB对某个网络进行高亮以及取消高亮
  19. B2B常见名词以及英文缩写
  20. Tech Talk 活动预告 | 云原生DevOps的Kubernetes技巧

热门文章

  1. linux多路由表,linux 多网卡多路由表实现策略路由
  2. php页面在线人数,也谈php网站在线人数统计
  3. LINUX下UDP实现消息镜像通信,linux环境下基于udp socket简单聊天通信
  4. 外包网络推广公司浅析想保持稳定的SEO排名和流量,需要做什么呢?
  5. 网络推广——网络推广优化基础问题必须明确
  6. 网站建设之前需要先了解目标受众
  7. matlab的syms无法在函数中使用_EXCEL中查找匹配函数VLOOKUP使用技巧
  8. openssl 生成公私钥
  9. numpy append
  10. 使用Redis实现最近N条数据的决策