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

2024-02-14

我正在使用 PhoneGap Cordova 3.3.0 和最新版本zip.js http://gildas-lormeau.github.io/zip.js/core-api.html。该脚本能够获取存档内的文件列表,但无法获取任何二进制数据。我正在使用修复程序Hugeen https://github.com/gildas-lormeau/zip.js/pull/70但没有运气。

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 https://github.com/MobileChromeApps/zip

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

Example:

 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 https://github.com/MobileChromeApps/zip

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

Example:

 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://

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 zip.js 在phonegap中解压缩文件 的相关文章

  • 如何使用 javascript 迭代文件系统目录和文件?

    我正在使用 Javascript 编写一个应用程序 该应用程序将与 Phonegap 一起使用来制作 Android 应用程序 我正在使用 Phonegap File API 来读取目录和文件 相关代码如下所示 document addEv
  • Cordova - 启动后出现白屏,控制台中没有例外

    我已经离开我的 Cordova 应用程序一段时间了 但昨天刚刚进行了一次新的克隆 发现它出现了 死机白屏 症状 启动画面显示 程序加载 然后我就得到一个空白屏幕 更多细节 CLI 科尔多瓦 6 1 1 安卓 5 1 1 ios 4 1 1
  • 您的 APK 版本代码应高于 378

    几个月前 我在 Phonegap Build 中创建了一个 Android 应用程序 它工作正常 可以在 Play 商店上使用 我已经发布了我的应用程序的几个更新 并且都已成功发布 但今天我想发布我的应用程序的新更新 但它显示错误 您的 A
  • 在 ios 版 Ionic 中接收 URL

    我正在使用离子框架 我正在尝试设置一种从另一个应用程序接收网址的方法 就像 您在浏览器中 单击共享 然后将链接发送到另一个应用程序 我的应用程序 我找到了这个cordova https stackoverflow com questions
  • PhoneGap、getDeviceInfo 上的 EXC_BAD_ACCESS 的解决方法

    我遇到过EXC BAD ACCESS on getDeviceInfo对于应用程序 当升级到XCode 5 1并支持iOS 7 1 For XCode 5 1 和 iOS 7 1 它的内存管理非常严格 导致我在 iPhone 5s 上的 P
  • 使用 cordova cli 构建时的 Android 安装位置

    我正在使用 cordova CLI 工具构建一个大型 cordova phonegap 应用程序 我需要 AndroidManifest xml 文件中的 installLocation 具有 installLocation auto 或p
  • 当对phonegap应用程序进行更改时,Eclipse不更新apk

    已经有人问过这个问题 但没有一个答案有效 例如清理 刷新 更改版本号等 当对源文件进行更改时 Eclipse 不会重建 android 项目 这是一个phonegap应用程序 如果我更改html文件甚至java代码 我仍然得到相同的apk
  • Jquery 移动应用程序的奇怪行为

    我创建了一个应用程序 其中包含多个主页按钮 单击其中一个按钮 我的应用程序将重定向到某个视图 其中包含 JQM 表单 JQM 日历 文本字段 按钮和数据库等 我的问题是 当我在 Android 设备上测试我的应用程序时 即使我没有使用任何图
  • Android PhoneGap 插件,UI 选项卡栏,调整 WebView 大小

    我正在创建一个美味的 PhoneGap 插件 希望一旦它能被打开 准备好了 插件基本完成了 我只需要一个漂亮的用户界面 相互作用 简而言之 我想创建一个 本机 android 工具栏组件 如果您实现 PhoneGap UIControls
  • Flash ActionScript 2 的压缩和解压缩工具

    您是否知道 flash actionscript 2 的任何 zip unzip 组件或脚本 我知道这个图书馆 http ntt cc 2008 01 19 actionscript class library fzip html对于 Fl
  • Phonegap - 如何将.txt文件保存在Android手机的根目录中

    我正在尝试使用phonegap 将 txt 文件保存在Android 手机的根目录中 我已经安装了这些插件 cordova plugin file 和 cordova plugin file transfer 在 config xml 文件
  • 错误:执行命令“ant”,请确保已安装 ant 并将其添加到路径中

    我正在使用 Cordova 进行移动应用程序开发 我已经使用 npm 命令安装了 Cordova 安装后 我创建了一个 cordova 项目 每当我尝试向项目添加平台 android 时 它都会抛出以下错误 错误 执行命令 ant 请确保已
  • 对于 android 系统,使用 Sencha Touch 或 Phonegap 哪一个更好? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • iPad 上的 Cordova 锁定方向失败

    我正在使用 cordova 3 5 0 0 2 6 最后一个稳定版本 我在锁定 iPad 设备的方向时遇到问题 在 iPhone 上它可以正常工作 但在 iPad 上方向未锁定 我想锁定整个应用程序而不仅仅是页面 这是我当前的 config
  • 使用 Cordova 加载应用程序时如何配置状态栏颜色?

    我用 Cordova 创建了一个应用程序 我想改进 UI UX 使其看起来尽可能像本机应用程序 当应用程序第一次加载时 状态栏 和背景 的前几毫秒 实际上不到 1 秒 没有我配置的颜色Cordova 状态栏插件 https cordova
  • Cordova iOS 自定义插件:处理内存警告

    我正在开发一个使用 cordova 2 1 和一些自定义插件的 iOS 应用程序 我试图面对的问题如下 当我展示我的插件时 基本上是一个比内置插件具有更多功能的相机插件 cordova 插件 有时我会收到内存警告并随后卸载 包含 web 视
  • Phonegap HTML 应用程序和各种警报使浏览器挂起

    在测试phonegap应用程序时 我收到以下三个警报 并且浏览器挂起 从服务器运行应用程序 很多时候 这些警报会在 Ripple 插件启动之前弹出 我该如何删除这些 Alert 1 gap Device getDeviceInfo Devi
  • 谷歌分析与 Ionic

    我正在尝试使用 Google Analytics 添加到 Ionic phonegap Covdova 应用程序中this https blog nraboy com 2014 06 using google analytics ionic
  • PhoneGap Build Android 不显示闪屏

    这是我的 config xml 中与启动屏幕相关的代码
  • 如何保存 1 个 xcode 项目中的所有构建设置并在其他 xcode 项目上使用它们?

    我使用 xcode 4 5 和 cordova phonegap 来构建我的应用程序 我投入了大量时间来获取适合我的 Xcode 项目的构建设置 并且我想在我正在构建的多个应用程序上重用这些设置 我正在寻找是否有一种快速的方法来导出这些设置

随机推荐