jszip 发布微信小游戏

首先. jszip 是3.1版本 .egret 官网可以下载.以前用2.X 版本死活发布不了.各种问题, 搜了很多解决办法都没办法解决.有天想试下最新版本的, 看行不行. 结果还真成了. 主要是用于解压缩zip包.zip包里全是json文件

  • 加载zip文件, 并解压.
RES.getResAsync('config_zip').then((data) => {
    // 下载
    JSZip.loadAsync(data).then((zipdata) => {
        // 以文本形式解压
        return zipdata.file('xxx.json').async('text')
    }).then(text => {
        // 转json格式
        let jsonData = JSON.parse(text)
        console.log(jsonData)
    })
})
  • 加载图片
RES.getResAsync('img_zip').then((data) => {
    // 解压,读取
    JSZip.loadAsync(data).then((zipdata) => {
        // 把数据解析为base64
        return zipdata.file('img/xxx.jpg').async('base64')
    }).then(base64 => {
        base64 = "data:image/png;base64," + base64
        var img: eui.Image = new eui.Image();
        img.source = base64;
        this.addChild(img);
    })
})
  • 生成zip文件夹
var zip = new JSZip();
zip.file("Hello.txt", "Hello World\n");
// 创建images文件夹
var img = zip.folder("images");
// 二进制数据
var imgData = "R0lGODdhBQAFAIACAAAAAP/eACwAAAAABQAFAAACCIwPkWerClIBADs=";
img.file("smile.gif", imgData, { base64: true });
zip.generateAsync({ type: "blob" }).then((blob) => {
    saveAs(blob, "example.zip")
})

jszip 发布到微信会出现几个问题:

1.createElementNS is not a function

createElementNS 不被支持,那么将所有 createElementNS 改为 createElement

document.createElementNS( 'http://www.w3.org/1999/xhtml', 'canvas' );
// 改为 ==>
document.createElement( 'canvas' );

2.ReferenceError: JSZip is not defined

这个是微信里面不认window[xxx]的原因, 修改jszip.min.js开头部分

!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();
// 改为 ==>
!function (a) { if ("object" == typeof exports && "undefined" != typeof module){
   window.JSZip = a();
   module.exports = a();
}

这里有我修改好的,可直接放入第三方库配合解压代码使用:  https://download.csdn.net/download/u013013797/11974165

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值