jquery-mobile – 使用phonegap调用本机文件浏览器

我必须在我的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选择窗口与此之间的唯一区别是“内部存储”选项.

希望这可以帮助.

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...