我必须在我的phonegap项目中实现文件上传功能.用户应该能够从手机记忆库或SD卡上传任何类型的文件.我使用jQuery Mobile框架设计的应用程序屏幕.我尝试输入type =“file”,但在android 4.4中不支持.我也尝试过phonegap相机API,但它只支持媒体文件.我找到了一些cordova插件(
exm1,exm2).但这些插件使用自定义UI.我想调用本机文件浏览器来选择文件&它必须适用于Android和Android iPhone平台.有没有办法实现相同的?
我发现cordova文件选择器插件(https://github.com/cdibened/filechooser)对android平台有帮助,但我无法使其工作.成功回调函数在文件选择后没有立即被触发(用android 4.4.2测试).请在下面找到我的代码,
< input type =“file”id =“fileinput”name =“fileinput”/>
$("#fileinput").bind('click',function(){ console.log("choose file selected"); filechooser.open( {},fileChooseSuccess,fileChooseFailed ); }); function fileChooseSuccess(data) { var filepath = data.filepath; console.log("file path:"+filepath); } function fileChooseFailed(msg) { console.log(msg); }
解决方法
我能够获得你的插件,FileChooser正常工作.
> FileChooser.java
> FileChooserActivity.java
> Filelistadapter.java
> FileListFragment.java
> LocalStorageProvider.java
并附加
import your.package.name.R;
每个文件.
这是我使用的演示代码:
<html> <head> <title>Hello World</title> <script type="text/javascript" src="cordova.js"></script> <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script> <script type="text/javascript"> document.addEventListener("deviceready",function(){ var success = function(data) { alert("File chosen: " + data.filepath); }; var error = function(msg) { console.log( msg ); }; $('#fileinput').click(function(e) { filechooser.open({},success,error); }); }); </script> </head> <body> <input type="file" id="fileinput" name="fileinput"/> </body> </html>
另外,请注意作者希望将其用于KitKat 4.4.4.它可能适用于较低版本,但他不确定.
请注意,HTML5选择窗口与此之间的唯一区别是“内部存储”选项.
希望这可以帮助.
原文地址:https://www.jb51.cc/jquery/181361.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。