PhoneGap FileReader/readAsDataURL 不触发回调

2024-01-10

我正在使用 PhoneGap Build 构建 iOS v7.1+ 应用程序并使用weinre http://people.apache.org/~pmuellr/weinre-docs/latest/进行调试。我正在使用媒体捕获插件和文件 API 来捕获视频,试图获取其 Base64 表示形式。我可以打开录像机、拍摄视频并返回文件路径。然后我用resolveLocalFileSystemURL()获取一个文件对象readAsDataURL()需要。问题是FileReader从来没有打电话给onloadend打回来。

我一整天都在闲逛。推杆console.log()我能想到的无处不在。我检查了一下以确保 iOS 版本支持 http://www.caniuse.com/#feat=filereader。每个变量都是我所期望的,但回调根本没有被调用。我还尝试设置所有其他回调,但它们都没有被调用。我尝试过更换readAsDataURL() with readAsText()但我还是得到了布基斯。我尝试等待最多五分钟,因为我认为异步调用可能需要一点时间,但仍然没有任何结果。

下面是我的代码。下面是控制台输出。

var elements = new Object();
elements["video"] = $("#window_incident_create > .video > source")[0];

navigator.device.capture.captureVideo(
    function(files) {
        for ( var i in files ) {
            var file = files[i];

            var name = file.name;
            var path = file.fullPath;
            if ( path.indexOf("/private") === 0 )
                path = "file://" + path.substr(8);
            else
                path = "file://" + path;
            var type = file.type;
            var lastModifiedDate = file.lastModifiedDate;
            var size = file.size;

            var reader = new FileReader();
            reader.onloadend = function(event) {
                console.log(3);
                elements["video"].type = type;
                elements["video"].src = "data:" + type + ";base64," + event.target.result;
                console.log(4);
            };

            window.resolveLocalFileSystemURL(
                path,
                function(entry) {
                    console.log(1, entry.nativeURL);
                    reader.readAsDataURL(entry);
                    console.log(2);
                },
                function(error) {
                    console.log("0-0", error);
                }
            );
        }
    },
    function(error) {
        console.log("0-1", error);
    },
    {
        limit:  1
    }
);

1“文件:///var/mobile/Applications/AB239984-FB9F-43C0-B699-3596AC8A43A8/tmp/capture/capturedvideo.MOV”

2


稍微重新组织一下你的代码。放在reader初始化和onloadend里面的回调resolveLocalFileSystemURL成功回调。

像这样的东西:

var elements = new Object();
elements["video"] = $("#window_incident_create > .video > source")[0];

navigator.device.capture.captureVideo(
    function(files) {
        for ( var i in files ) {
            var file = files[i];

            var name = file.name;
            var path = file.fullPath;
            if ( path.indexOf("/private") === 0 )
                path = "file://" + path.substr(8);
            else
                path = "file://" + path;
            var type = file.type;
            var lastModifiedDate = file.lastModifiedDate;
            var size = file.size;

            window.resolveLocalFileSystemURL(
                path,
                function(entry) {
                    console.log(1, entry.nativeURL);
                    var reader = new FileReader();
                    reader.onloadend = function(event) {
                        console.log(3);
                        elements["video"].type = type;
                        elements["video"].src = "data:" + type + ";base64," + event.target.result;
                        console.log(4);
                    };
                    reader.readAsDataURL(entry);
                    console.log(2);
                },
                function(error) {
                    console.log("0-0", error);
                }
            );
        }
    },
    function(error) {
        console.log("0-1", error);
    },
    {
        limit:  1
    }
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PhoneGap FileReader/readAsDataURL 不触发回调 的相关文章

  • 如何将 PhoneGap 与 Visual Studio 结合使用

    我在 Windows 8 VS 2012 上开始使用 PhoneGap 时遇到问题 即 我不知道如何安装模板 我打开从PhoneGap下载的模板项目 但它们与VS2012兼容 我不知道从哪里开始创建我的第一个简单的 CRUD 应用程序 我想
  • 是否可以使用 javascript 测试用户的浏览器/操作系统是否支持给定类型的链接?

    是否可以使用 javascript 或其他任何东西 测试用户的操作系统 浏览器是否支持给定的 url 方案 例如 大多数仅使用网络邮件的用户计算机上未设置 mailto 是否有可能以某种方式捕获单击 mailto 链接的尝试并弹出比浏览器错
  • 在 Instruments 中查找内存泄漏行

    我是 iOS 中的仪器新手 我正在尝试使用 Xcode 4 5 2 并按照本教程查找仪器中的内存泄漏 http soulwithmobiletechnology blogspot sg 2011 04 how to check memory
  • javascript中按tab键时如何调用函数?

    我有一个这样的功能 function whenEmpty field if field value field style backgroundColor ffcccc alert Please fill the field field f
  • 如何更改已上传的 Firebase 存储图像文件名?

    我需要更改已上传到 firebase 存储中的文件名 因为 在 firebase 存储中上传图像后 我将 url 保存在 firebase 数据库中的特定子 文件夹 下 但是 当我将图像移动到另一个子 文件夹 时 我需要根据新名称更改存储中
  • 如果链接包含特定文本,jQuery 将类添加到 href

    我的网站上的列表中有一些动态填充的链接 这些链接链接到文件 是否可以使用 jQuery 查看文件名是否以 pdf 结尾 并在 href 或类似的链接文本以 mp3 结尾时添加一个类 例如 我的列表中有以下链接 文件1 pdf 歌曲1 mp3
  • xcode 6.1 (Swift) 中的 SIGABRT 运行时错误

    与最初的代码相比 唯一的更改是在ViewControl swift override func viewDidLoad newMessage hidden true super viewDidLoad Do any additional s
  • Swift 中通过不同类调用委托方法

    我正在获取 JSON 菜单 一旦 JSON 返回 我想运行 menuReady 来更新表的内容在 SomeTableViewController 类中 但下面的代码似乎不起作用 AIM Run 菜单就绪 JSON 返回后更新内容 PROBL
  • 使用 JS 合并具有相同值的相邻 HTML 表格单元格

    我已经为此苦苦挣扎了一段时间 我有一个根据一些 JSON 数据自动生成的表 该数据可能会有所不同 我想合并第一列中具有相同值的相邻单元格 例如此表中的 鱼 和 鸟 table tr td fish td td salmon td tr tr
  • 淡出和循环一组 div 的最佳方式

    假设我有以下 div div class a You are funny div div class b You are smart div div class c You are cool div 最好的展示方式是什么div a持续 5
  • 如何将函数内的捕获错误传递给父级

    我有这几行代码示例 想知道下面的逻辑到底如何 try var response child console log why here catch err console log should show this err function c
  • JavaScript onresize 事件多次触发

    我在尝试仅在触发 onresize 事件时运行一次函数时遇到一些麻烦 我已经看过这个问题DOM onresize 事件 https stackoverflow com questions 1500312 javascript onresiz
  • 如何在 Google 地图 V3 中创建编号地图标记?

    我正在制作一张上面有多个标记的地图 这些标记使用自定义图标 但我还想在顶部添加数字 我已经了解了如何使用旧版本的 API 来实现这一点 我怎样才能在V3中做到这一点 注意 当您将鼠标悬停在标记上时 标题 属性会创建一个工具提示 但我希望即使
  • ResponseSerializer“无法使用 Swift 3 调用非函数类型“NSHTTPURLResponse”的值?

    我一直在使用以下代码 没有出现任何问题 直到更新到 Xcode 8 beta 6 它类似于这个例子 https github com Alamofire Alamofire generic response object serializa
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 防止文本区域出现新行

    我正在开发聊天功能 使用 Vue 并使用文本区域作为输入 以便溢出换行 并且对于编写较长消息的用户来说更具可读性 不幸的是 当用户按下 Enter 键并提交时 光标会在提交之前移动到新行 从而使用户体验感觉不佳 关于如何使用普通 Javas
  • 在 Javascript 中减少/分组数组

    基于this https stackoverflow com a 40774906 3254598例如 我想以稍微不同的方式按对象进行分组 结果应该如下 key audi items make audi model r8 year 2012
  • 如何在打字稿文件中导入没有定义文件的js库

    随着我们的项目变得越来越大 我想从 JavaScript 切换到 TypeScript 以帮助进行代码管理 然而 我们使用许多库作为 amd 模块 我们不想将其转换为 TypeScript 我们仍然想将它们导入 TypeScript 文件
  • 单击列表时使用 bootstrap Dropdown 防止下拉菜单消失

    我正在使用使用引导下拉菜单 http twitter github com bootstrap javascript html dropdowns生成下拉菜单 我想防止点击菜单时菜单消失 我已经实现了以下代码 但它不起作用 知道如何修复它吗
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没

随机推荐

  • Achartengine - Android 中条形图的不同条形颜色

    我在 android 中使用创建了一张图表图表引擎 http achartengine org图书馆 我想用不同的颜色显示每个栏 我能做什么 请给我一些建议 提前致谢 只需查看给出的答案here https stackoverflow co
  • 在 django 中使用 Crispy_forms 时,“FormHelper”对象没有属性“append”

    我是 Django 的新手 我正在尝试使用脆脆的表单来设计表单的样式 我的应用程序中有一个表单 它恰好是一个模型表单 我已经遵循了此处所说的内容https stackoverflow com a 13201588 1076075 https
  • Laravel 5.x 数据库触发器和可能的最佳实践

    这篇文章的目的是提供信息并提出问题 大家好 我正在开发一个可以充分利用触发器的大型系统 我们目前正在使用 phpmyadmin 在 Laravel 5 2 和 php 7 上运行服务器端 在 Laravel 中 并没有太多关于如何通过迁移使
  • 概括 python 脚本以在目录中的所有文件上运行

    我有以下 python 脚本 with open ein csv r as istr with open aus csv w as ostr for line in istr line line rstrip n 1 print line
  • 这是一个指针吗? (如果是的话,它是如何初始化的?)

    有一个头文件 esUtil h 其中定义了一个名为 ESContext 的结构 其成员之一是 userData userData 是一个指向 void 的指针 使用它的程序主体如下 include esUtil h typedef stru
  • Facebook Connect for iOS:dialogDidComplete 响应区分

    我想知道如何区分用户在内联后流 FBDialog 中点击 提交 或 跳过 有谁知道要测试什么吗 我在 iOS 4 2 环境中使用最新的 iOS Facebook Connect Called when a UIServer Dialog s
  • 再次重新处理/读取Kafka记录/消息 - Consumer Group Offset Reset的目的是什么?

    我的 kafka 主题总共有 10 条记录 消息 2 个分区 每个分区有 5 条消息 我的消费者组有 2 个消费者 每个消费者已经分别从其分配的分区读取了 5 条消息 现在 我想从开始 开始 偏移量 0 重新处理 读取我的主题中的消息 我停
  • 带注释的收藏袋

    我正在观看一个由 制作的精彩视频伯特 贝克威斯 http www infoq com presentations GORM Performance http www infoq com presentations GORM Performa
  • 无法检索 Eclipse 插件中选定的 java 文件名/路径

    我正在开发一个插件 需要 检索 java 文件的路径 文件名 我编写的代码成功检索了 xml 或清单文件的文件名 路径 但无法检索包中 Java 文件的路径 我使用的代码是 if IStructuredSelection 的选择实例 Obj
  • 如何在Vue JS中动态渲染组件?

    我正在制作一个表单生成器 它使用其中的组件作为输入字段 按钮等 我希望能够根据我传递给它的选项来生成表单 但我无法让它渲染组件 我尝试返回纯 HTML 但这不会渲染组件 我从 Home vue 模板中调用表单生成器 我希望表单具有如下所示的
  • 线程池并行处理消息,但保留对话中的顺序

    我需要并行处理消息 但保留具有相同会话 ID 的消息的处理顺序 Example 让我们像这样定义一个消息 class Message Message long id long conversationId String someData 假
  • iOS 7.1 删除超级视图崩溃

    我的应用程序没有发生任何崩溃 直到iOS 7 1出来 现在在任何removeFromSuperview方法 崩溃 例如 我有视图控制器 当我想删除视图控制器时 我删除它的所有子视图 然后从堆栈中删除 堆栈 我在其中存储视图控制器 用于加载新
  • 如何在 AngularJS 中交换 div 元素的顺序?

    如何使用 Angular 的数据绑定更改包含文本框和下拉列表的 div 元素的顺序 div 的顺序应相应更改用户登录意味着如果用户类型为 A 则 div A 应位于顶部 如果用户类型为 B 则 div B 应位于顶部 其他 div 元素将位
  • 无法使用 Firebase CLI 登录

    当我尝试使用 CLI 登录 Firebase 时遇到问题 我安装了firebase tools using npm g install firebase tools具有管理员权限 我执行的步骤是 从 Windows 10 Professio
  • 删除第一页的页眉和页脚

    class MyDocTemplate BaseDocTemplate def init self filename kw self allowSplitting 0 apply BaseDocTemplate init self file
  • 如何借助 FFMPEG 和 PHP 代码连接两个 mp4 视频? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有人可以帮助我使用 FFMPEG 的 php 代码来连接两个 mp4 视频并将连接的文件作为 mp4 存储在服务器中的任何文件夹中吗
  • jQuery 仅序列化 div 中的元素

    我想得到同样的效果jQuery serialize 但我只想返回给定的子元素div 结果示例 single Single2 multiple Multiple radio radio1 没问题 只需使用以下内容即可 这将与序列化表单完全相同
  • js中能获取之前的历史状态对象吗?

    当我点击后退或前进按钮并且 popstate 事件触发时 我可以获得前一个状态的状态对象吗 因为不是 e state 提供的状态对象 而是我刚刚后退 转发的状态对象 或者 我可以检测按下的是后退按钮还是前进按钮 我需要这个 因为我有多个子系
  • 匹配点集的算法

    我有两组点A and B 而点可以是 2D 或 3D 两套尺寸相同n 相当低 5 20 我想知道这些集合的一致性如何 也就是说 理想情况下 我会找到点之间的配对 使得所有欧几里得对距离的总和d A B 是最小的 所以 d A B sum i
  • PhoneGap FileReader/readAsDataURL 不触发回调

    我正在使用 PhoneGap Build 构建 iOS v7 1 应用程序并使用weinre http people apache org pmuellr weinre docs latest 进行调试 我正在使用媒体捕获插件和文件 API