gpt4 book ai didi

cordova - 使用 zip.js 在 phonegap 中解压文件

转载 作者:行者123 更新时间:2023-12-01 18:40:09 26 4
gpt4 key购买 nike

我正在使用 PhoneGap Cordova 3.3.0 和最新版本的 zip.js .该脚本能够获取存档内的文件列表,但无法获取任何二进制数据。我正在使用 Hugeen 的修复程序但没有运气。

function decompress(fullsavepath, filename){
zip.useWebWorkers = false;
file_system.root.getFile("app_cache/temp.zip", {}, function(fileEntry){
fileEntry.file(function (file) {

zip.createReader(new zip.BlobReader(file), function(reader) {

// get all entries from the zip
reader.getEntries(function(entries) {
if (entries.length) {
//Output zip file contents
for(var i=0; i<entries.length;i++){
console.log(entries[i].filename);
}

//Try to decompress file no. 3
console.log('---- entries[2] '+entries[2].filename);
entries[2].getData(new zip.BlobWriter(), function(unzipData){
console.log(unzipData);
},null, null);
}
});
}, null);

})

},null);
}

这是我的控制台日志,其中包含相关消息:
Console: ----entries[2] photoalbum/bpage1.jpg at file:///android_asset/www/dl/index.html:315
Console: processMessage failed: Message: S01 File821048650 AUEsDBBQAAAAIAEFVCEMFqmCrQAsHAMa3BwASAAAA at file:///android_asset/www/cordova.js:1034
Console: processMessage failed: Error: TypeError: undefined is not a function at file:///android_asset/www/cordova.js:1035
Console: processMessage failed: Stack: TypeError: undefined is not a function
Console: at inflate (file:///android_asset/www/dl/js/vendor/zip/zip.js:429:18)
Console: at file:///android_asset/www/dl/js/vendor/zip/zip.js:600:16
Console: at BlobWriter.init (file:///android_asset/www/dl/js/vendor/zip/zip.js:297:4)
Console: at file:///android_asset/www/dl/js/vendor/zip/zip.js:596:12
Console: at [object Object].<anonymous> (file:///android_asset/www/dl/js/vendor/zip/zip.js:203:5)
Console: at file:///android_asset/www/plugins/org.apache.cordova.core.file/www/FileReader.js:352:20
Console: at Object.callbackFromNative (file:///android_asset/www/cordova.js:292:54)
Console: at processMessage (file:///android_asset/www/cordova.js:1029:21)
Console: at Function.processMessages (file:///android_asset/www/cordova.js:1063:13)
Console: at pollOnce (file:///android_asset/www/cordova.js:933:17) at file:///android_asset/www/cordova.js:1036

------ 更新 2014-04-07 -------------

最后我们使用了另一种方法来解决这个问题。 Google 为 Android 和 iOS 开发了一个原生插件 - https://github.com/MobileChromeApps/zip

它非常简单,老实说,这是我们使用的罕见插件之一,它在第一次尝试时就成功地完成了我们需要的工作。

例子:
 zip.unzip("cdvfile://localstorage/downloaded.zip", 
"cdvfile://localstorage/my_data/path/",
function(){
console.log('Zip decompressed successfully');
}
);

PS:Cordova 已经更新到 3.4.0 - 我原来的问题使用了像 file:///android_asset/www 这样的路径已全部替换为新的 cdvfile://

最佳答案

-- 从我上面的编辑中复制--

最后我们使用了另一种方法来解决这个问题。 Google 为 Android 和 iOS 开发了一个原生插件 - https://github.com/MobileChromeApps/zip

它非常简单,老实说,这是我们使用的罕见插件之一,它在第一次尝试时就成功地完成了我们需要的工作。

例子:

 zip.unzip("cdvfile://localstorage/downloaded.zip", 
"cdvfile://localstorage/my_data/path/",
function(){
console.log('Zip decompressed successfully');
}
);

PS:Cordova 已经更新到 3.4.0 - 我原来的问题使用了像 file:///android_asset/www 这样的路径已全部替换为新的 cdvfile://

关于cordova - 使用 zip.js 在 phonegap 中解压文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21334174/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com