PhoneGap FileReader / readAsDataURL不触发callback
我正在使用PhoneGap Build来构buildiOS v7.1 +应用程序并使用weinre进行debugging。 我正在使用媒体捕获插件和文件API来捕获video,以获取其base64表示forms。 我可以让录像机打开,拍摄一个video,并返回文件path。 然后,我使用resolveLocalFileSystemURL()
来获取resolveLocalFileSystemURL()
所需的文件对象。 问题是FileReader
永远不会调用onloadend
callback。
我一整天都在瞎忙。 把console.log()
放在我能想到的地方。 我检查,以确保iOS版本的支持 。 每个variables都是我期望的,但是callback函数根本就没有被调用。 我也尝试设置所有其他callback,但他们都没有被调用。 我试图用readAsDataURL()
replacereadAsDataURL()
,但我仍然得到bupkis。 我试过等了五分钟,因为我认为asynchronous调用可能会花一点时间,但还是一无所获。
以下是我的代码。 下面是控制台输出。
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“file:///var/mobile/Applications/AB239984-FB9F-43C0-B699-3596AC8A43A8/tmp/capture/capturedvideo.MOV”
2
稍微重新组织你的代码。 将resolveLocalFileSystemURL
成功callback中的reader
初始化和onloadend
callback。
像这样的东西:
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 } );
- 如何在android或ios中使用phonegapredirect到GPS设置窗口打开或closuresGPS
- iOS / iPhone上的Ionic / Cordova / PhoneGap应用程序内嵌YouTubevideo
- 在远程Mac上通过ssh构buildcordova应用程序
- cordovaiOS更改屏幕方向在一个页面上进行
- cordova/ Phonegap IOS加载脚本不能正常工作
- 如何在Safari中打开外部链接而不是应用程序的UIWebView?
- 如何在cordova的HTML5video播放期间忽略铃声设置
- 如何使用phonegap应用程序获取所选图像的URL
- JQuery的移动地图和Microdata iPhone应用程序