使用phonegap调用本机文件浏览器

2023-11-22

我必须在我的phonegap 项目中实现文件上传功能。用户应该能够从手机内存或 SD 卡上传任何类型的文件。我使用 jQuery Mobile 框架设计的应用程序屏幕。我尝试了 input type="file",但 android 4.4 不支持它。我也尝试过phonegap相机API,但它仅支持媒体文件。我发现了一些科尔多瓦插件(exm1,exm2)。但这些插件使用自定义 UI。我想调用本机文件浏览器来选择文件,它必须在 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 正常工作。

但有些事情是必须要做的。 您需要使用编辑器打开以下内容

  • 文件选择器.java
  • 文件选择器活动.java
  • 文件列表适配器.java
  • 文件列表片段.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 选择窗口与此窗口之间的唯一区别是“内部存储”选项。

希望这可以帮助。

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

使用phonegap调用本机文件浏览器 的相关文章

  • PhoneGap文件传输错误1、哪里写FileTransfers?

    相关 https stackoverflow com questions 21044197 download file and store them locally in sdcard using phonegapbuild https s
  • 科尔多瓦本地存储不持久

    我正在使用Windows Phone 7 sdk 和phonegap 开发混合移动应用程序 使用 Cordova 本地存储我正在存储价值 如果我关闭应用程序并在 Windows Phone 模拟器中再次启动 则存储的值不会保留 任何在 Wi
  • 需要在状态改变时关闭MediaRecorder播放的声音

    我已尝试在下面的链接中找到的更改 但没有效果 如何在状态改变时关闭 MediaRecorder 播放的声音 https stackoverflow com questions 6804205 how to shut off the soun
  • 为什么我必须将所有脚本放入 jquery mobile 中的index.html

    我在我的phonegap jquerymobile 项目中使用 mobile changepage 进行重定向 然而让我困惑的是我需要将所有页面的脚本放在同一个文件index html中 如果不是 则重定向页面无法执行其标头中的函数 例如
  • 表格不会提交

    我的 jquery mobile modernizr 网站上有一个表单 我正在使用 jquery mobile 的 1 1 0 rc 1 我的页面上有此表单 但它没有提交 单击搜索按钮绝对不会执行任何操作 我不知道为什么 有任何想法吗 p
  • Cordova 构建 iOS 应用程序并打开模拟器,但未安装

    我正在 MacOS 上用 Cordova 制作一个 iOS 应用程序 当我跑步时cordova emulate ios该应用程序会构建并打开 iPhone X iOS 11 4 的模拟器 但它从未在模拟器中安装该应用程序 它仅显示模拟器主屏
  • 如何使用 jQuery mobile 确保动态 DOM 元素具有正确的 css

    我正在使用 jQuery mobile 构建一个移动应用程序 我尝试动态添加一些输入 但是 jQuery 移动样式未添加到动态创建的输入中 我创建了一个简单的应用程序 http jsfiddle net jGhqS http jsfiddl
  • 在 jQuery Mobile 中使用自定义图标创建按钮

    我正在为客户开发一个应用程序 并尝试创建一个带有完全自定义图标的按钮 图标大小为 30px x 30px 中间透明 我几乎已经使用这个 css 代码实现了我想要的目标 info button override ui icon info pa
  • 错误:UNABLE_TO_VERIFY_LEAF_SIGNATURE Phonegap 安装

    我正在尝试在 Ubuntu 中安装 Phonegap NodeJS 安装成功 但是我无法安装 Phonegap 本身 这是终端的错误输出 test test VirtualBox sudo npm install g phonegap np
  • 如何延迟可折叠对象的展开,直到获取其内容?

    我想在我的 jQM 应用程序 1 3 2 中集成一个可折叠的功能 其工作原理如下 开始崩溃了 单击后 它开始从服务器获取可折叠的列表项 这可折叠保持关闭状态 加载图标可能会旋转 加载所有元素并且列表视图刷新并准备好后 可折叠展开 如果你再次
  • 如何在 iOS 上使用 PhoneGap 检测是否拨打电话

    在 iOS 上使用电话提示意图时 例如 window location telprompt phoneNumber 系统会提示用户拨打该号码或取消 有没有办法知道用户执行了这两个操作中的哪一个 查看 PhoneGap 文档 startcal
  • 如何在 Xcode 4 和 Cordova 中使用符号链接

    我无法让 Xcode 将 www 资源复制到我基于 PhoneGap 的 iPhone 应用程序 我考虑过使用 Git 子模块 但由于应用程序必须在不同的平台 iPhone Android 等 上运行 并且必须采用不同的品牌 图像 CSS
  • 添加媒体插件后 Ionic Cordova IOS 构建失败

    我正在使用 Ionic Framework 和 Cordova 开发一个移动应用程序 我尝试添加 Cordova 媒体插件 但它无法为我构建 我什至尝试创建一个新的启动选项卡项目 然后添加媒体插件 如图所示 由于添加了媒体插件 该项目无法编
  • 将 Cordova Android 项目迁移到 AndroidX

    我目前正在使用 AdMob 测试广告测试混合 Cordova Android 应用程序 该应用程序使用一个自定义插件 即内部插件 我可以通过该插件访问 Google Play Services AdMob API 的相关位plugin xm
  • 添加滚动到顶部按钮(Ionic 2 | Typescript)

    大家好 我正在尝试添加 滚动到顶部按钮 实现以下内容 1 当用户向下滚动时显示按钮 2 当用户向上滚动时隐藏按钮 3 如果点击该按钮 则滚动到顶部并隐藏该按钮 关于如何使其正确的任何建议 多谢 简化scrollToTop from adri
  • Cordova 的内容安全策略未加载外部脚本和样式表(404 错误)

    我目前将 Cordova 的 Content Security Policy 元标记设置为 如果我运行 Android 模拟器 我会看到以下错误 拒绝加载样式表 https min css https min css 因为它违反了以下内容安
  • jQuery 在页面上查找电话号码并包含在 链接中

    这是一个与这个从未得到解答的老问题类似的问题 使用 jquery 将 https stackoverflow com questions 4607753 wrap a tag around phone number using jquery
  • PhoneGap/Cordova:如何使用cookies(iOS)?

    我有一个适用于 iOS 的 PhoneGap Corodova 项目 在 iOS 模拟器上构建时 我使用了 Jquery Cookies 它们很好 但是 既然我的设备上有该应用程序用于测试 它们就不再工作了 我猜这只是 iOS 不支持的东西
  • 此错误消息“insertId: Error: INVALID_ACCESS_ERR: DOM Exception 15”的含义是什么?

    我正在使用 jquery mobile phonegap 和 openDatabase 开发一个应用程序 当应用程序执行时 我可以在 Safari 浏览器的控制台中看到SQL结果集与此消息 insertId Error INVALID AC
  • 更改 JQM 面板的宽度

    我想弄清楚如何更改 JQM 面板动画的宽度 我可以更改面板中内容的宽度 但动画仍然以预定义的宽度打开 我不知道如何更改 这是我尝试过的内容并更改了内容 ui panel width 150px 我浏览了 JAM 文档但没有找到解决方案 希望

随机推荐

  • Fragment 元素中的 Fragment onClick 方法

    我读了很多关于片段的文章 但我仍然对如何做什么感到困惑 我有一个 MainActivity 它并排显示两个片段 在其中一个片段中 我有一个按钮 并在该按钮的片段布局 XML 中定义 android onClick buttonClicked
  • 使用 wget 递归获取其中包含任意文件的目录

    我有一个 Web 目录 用于存储一些配置文件 我想使用 wget 来提取这些文件并维护它们当前的结构 例如 远程目录如下所示 http mysite com configs vim vim 包含多个文件和目录 我想使用 wget 在客户端上
  • 使用开发依赖项在 Heroku 上部署时尝试从命名空间“Symfony\Bundle\WebProfilerBundle”加载类“WebProfilerBundle”

    我们有一个托管在 Heroku 上的 Symfony 4 3 Web 应用程序 这是一个新的设置我们从未设法让开发模式正常工作 网上有很多类似的问题 但没有一个能解决我们在这里面临的确切症状 该项目是使用命令行创建的 composer cr
  • MySQL InnoDB 数据库恢复

    我必须恢复在 MySQL 5 0 中无意中删除的数据库 通过检查备份文件 我似乎只有 FRM 文件来保存数据库数据 任何人都可以建议这是否是我从备份执行数据库恢复 导入所需的全部内容 或者我还需要提供其他文件来完成此操作吗 frm 文件不是
  • 如何像 Eclipse 一样清理 IntelliJ IDEA 中的项目缓存?

    有时IDE会因为缓存而出现一些错误 在Eclipse中 我们可以使用clean来解决问题 我怎样才能在 IntelliJ 中做到这一点 取决于您正在运行的版本 基本上是一样的 只需转到 File gt 使缓存无效 然后重新启动Intelli
  • 什么是 .exe 文件存根?

    我正在学习如何使用混淆我的程序集 NET反应堆 一种选择是 生成本机 x86 EXE 文件存根 我不明白它的目的 我导入一个程序集 例如 exe 文件 并输出一个经过混淆的 exe 文件 其大小大致相同 如果我检查过 生成本机 x86 文件
  • 在 VS2010 Express 中创建构造函数的代码片段

    VS 2010 Express 版本 适用于 C 中是否有任何现成的代码片段 可以使用选定属性中的参数创建构造函数 当我创建一个新类并编写以下代码时 public class FileDetails public int ID get se
  • 将 C# 控制台应用程序转换为 DLL

    我正在将 Betfair API 从 SOAP 重写为 JSON 并且按照之前的方式开始 将其作为控制台应用程序 然后从任务调度程序或 win 服务中调用 然而现在我被要求用代码做各种不同的工作 我不想为每项工作编写一个控制台应用程序 不同
  • error_code:如何设置和检查errno

    我试图了解在调用设置的 C 函数时应该使用什么类别errno在 Linux 上 我不确定所有可能的错误代码都是由 POSIX 定义的 所以我很想使用system category 但我喜欢稍后在代码中处理通用条件 所以我想做这样的事情 st
  • Flutter 入门屏幕仅一次

    我是 flutter 和 dart 的新手 我正在尝试制作一个带有 3 页的入门屏幕的应用程序 并且当用户已经打开该应用程序一次时 我试图跳过入门屏幕 我见过与共享偏好类似的东西 但我无法使其发挥作用 这是我的入门屏幕 class Onbo
  • 在没有 Maven 或 Gradle 的情况下将 JUnit 5 与 Java 9 结合使用

    说明 我想使用创建一个 JUnit 测试JUnit 5 in 日食 氧气 4 7 1a 此 JUnit 测试应位于名为 Test 的单独 src 文件夹内 然而 由于我是 JUnit 的新手 我遇到了以下问题Java 9 I 不要使用像这样
  • PHP按键值降序对数组进行数字排序[重复]

    这个问题在这里已经有答案了 PHP 中是否有一个选项可以按键值降序对数组进行排序 我知道您可以使用以下命令对键值进行排序ksort 是的krsort fruits array d gt lemon a gt orange b gt bana
  • PySpark:获取数据框中每列的第一个非空值

    我正在处理不同的 SparkDataFrames 其中许多列中有很多 Null 值 我想要得到any one每个列中的非空值 以查看该值是否可以转换为日期时间 我尝试做df na drop first 希望它会删除所有具有空值的行以及剩余的
  • 使用像 bash 管道这样的操作系统进程:发送 STDIN 并获取其 STDOUT

    我正在尝试使用外部过程它读取 STDIN 并写入 STDOUT 我想在 Elixir 中编写与此等效的内容 而不使用外部库或包装脚本 echo foo nkf foo 即发送数据到nkf在 stdin 上 并从返回转换后的结果nkf的标准输
  • LUA 中的随机种子

    我正在编写一个随机化数字的代码 我放math randomseed os time 在一个循环内 代码如下 for i 1 1000 do math randomseed os time j math random i row one u
  • 是否可以为 Android 应用程序提供动画启动器图标? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我只是好奇 Android 是否支持动画启动器图标 例如 iOS 的日历应用程序始终显示当前日期或图标上有移动的手的时钟 不是一般情况下 安卓有应用程序小部件为了那个原因 某些主屏幕
  • 使用 IEqualityComparer 的建议最佳实践是什么?

    我正在寻找现实世界的最佳实践 其他人可能如何实施具有复杂领域的解决方案 任何时候您考虑使用IEqualityComparer
  • 是否可以重置所有继承的 CSS 属性?

    如何重置 CSS 文件中类的所有继承属性 我需要能够在元素上设置新属性 而预定义属性不会对其产生影响 仅使用 CSS 可以吗 我不是在谈论 CSS 重置 例如 body margin 0px padding 0px 简单的答案 你不能 Un
  • NGINX 代理到 WordPress 网站

    我有一个静态服务的站点 使用 nginx 我想在 blog 文件夹下托管一个 WordPress 博客 托管在不同的实例上 使用 nginx 代理时 location blog proxy set header X Is Reverse P
  • 使用phonegap调用本机文件浏览器

    我必须在我的phonegap 项目中实现文件上传功能 用户应该能够从手机内存或 SD 卡上传任何类型的文件 我使用 jQuery Mobile 框架设计的应用程序屏幕 我尝试了 input type file 但 android 4 4 不