首先感谢可神提供的解决方案。
问题描述:
在终端执行gulp packToOne打包成swf后,在某些安卓微信下,由于获取不到swf总大小,所以无法实时更新加载进度(%)
解决办法(2步走):
1、替换annieCore.min.js引擎,网盘下载地址:地址
2、index.html加入代码
<script>
window.swfBytes={ swf文件名: swf文件大小(单位Byte)};
// window.swfBytes={ load: 12021, pageHome: 10203, public: 1202003};
</script>
swf文件大小需要手动去计算,如果觉得麻烦可以修改gulpfile.js自动获取下swf文件大小,见下文
修改gulpfile.js实现自动获取swf文件大小,修改index.html和gulpfile.js关键位置
//index.html 需要修改成这样占位,gulp最后会替换
window.swfBytes={};
//gulefile.js
gulp.task("packToOne",function () {
// 位置1 新增
var fileSizeArr = {};
// 位置2 修改 writeFile改成同步写入writeFileSync,新增2行
//正则替换里面所有的
var file = "./released/src/" + sceneList[i] + "/" + sceneList[i] + ".swf";
fs.writeFileSync(file, content, "utf8", function (err) {});
//读取文件大小
var states = fs.statSync(file);
fileSizeArr[sceneList[i]] = states.size;
// 位置3
//替换index.html文件里字符
gulp.src('./released/index.html').pipe(replace("window.swfBytes={};", `window.swfBytes=${JSON.stringify(fileSizeArr)};`)).pipe(gulp.dest("released"));
});
至此结束,有问题可回复~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!