问题标签 [cordova-plugin-file]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
670 浏览

android - 使用 cordova-plugin-file 读取大文件

我正在尝试在 Android 上的科尔多瓦应用程序中读取一个大型文本文件。该文件大约 80MB 大。由于内存限制,我决定分块读取此文件。经过我指出的一些研究,该 file.slice 应该可以发挥作用。但这似乎不起作用。slice 后返回的 blob 与整个文件的大小相同。我的期望是可以由 Android 处理的较小的 blob。

这是我使用的代码的摘录:

这是从 Logcat 生成的输出:

[#] 文件切片:86998921 [#] 文件成功:

然后应用程序由于内存不足而崩溃:

11-03 10:37:40.382 4156-4214/com.my.app E/AndroidRuntime: 致命异常: pool-1-thread-3 进程: de.knova.adisys, PID: 4156 java.lang.OutOfMemoryError: 失败在 org.apache.cordova 的 java.lang.StringFactory.newStringFromBytes(StringFactory.java:63) 处的 java.lang.StringFactory.newStringFromBytes(StringFactory.java:185) 处分配 231997140 字节分配和 4194304 个空闲字节和 127MB。 org.file.FileUtils$26.handleData(FileUtils.java:1095)apache.cordova.file.Filesystem.readFileAtURL(Filesystem.java:284) at org.apache.cordova.file.FileUtils.readFileAs(FileUtils.java:1066) at org.apache.cordova.file.FileUtils$6.run(FileUtils .java:327) 在 org.apache.cordova.file.FileUtils$25.run(FileUtils.java:663) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 在 java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:607) 在 java.lang.Thread。运行(线程.java:761)

有谁知道我做错了什么或如何在 Cordova 中读取这些大文件?读取 1024 字节 Blob 就可以了。

0 投票
1 回答
162 浏览

android - 在 Android 6 上未返回 fileEntry 结果

我的 Cordova 应用程序中似乎存在文件读取权限问题,但我终生无法正确追踪它。在 Android 5 和 Android 6 之间,我看到对fileEntry. 有谁知道是否需要更改才能读取 Android > 5 中的文件/目录

血淋淋的细节:cordova-plugin-file我只用(调用)将代码复制到了一个 helloWorld 应用程序cordova create hello,并且得到了相同的结果。我的更改如下:

我在的正文中添加了一个元素index.html

我还更改了 中的 stock receivedEvent 方法index.js,只是为了遍历设备上的各个目录并返回cordova-plugin-file给我的内容:

可能的安全配置:

我的platforms/android/AndroidManifest.xml文件包含适当的权限:

这是我在 index.html 中的 CSP(它只是库存的):


结果如下:

安卓 5

Android 5. 注意目录和文件(屏幕外还有其他)

安卓 6

Android 6. 请注意,我在子目录下的一些文件cordova.file.externalRootDirectory应该显示;它还应该显示子目录本身。

0 投票
1 回答
1763 浏览

android - Cordova 文件插件:SECURITY_ERR

我有一个使用 Cordova 插件的生产(iOS/Android)混合应用程序。我有一个 Android 用户在使用 File 插件时得到了 SECURITY_ERR。这似乎发生在调用writeFile(). 我为 Android 写入的文件路径是externalRootDirectory.

谁能帮我理解为什么 1 个用户(300-400 个)会有这个问题?如果有帮助,用户使用的是 Android 6.0.1。

一些代码如下。我得到的错误是[Error creating file] – Error Msg: [SECURITY_ERR],所以.writeFile()在这种情况下会遇到问题。

0 投票
1 回答
2091 浏览

cordova - 如何在 ionic / cordova 中读取我的应用程序文件?

我试图简单地阅读下面的文件src/assets/data(我已经创建了data包含一些文本文件的目录)。

我尝试了很多方法都没有成功:

以及建议另一个答复的内容

对于所有这些解决方案,我总是以以下错误结束:“ A URI supplied to the API was malformed, or the resulting Data URL has exceeded the URL length limitations for Data URLs.

我正在运行科尔多瓦ionic cordova run browser --port=8000并且this.file.applicationDirectory等于http://localhost:8000/

有人知道如何做这个简单的事情吗?或者我应该将我的data文件夹移动到另一个地方并使用另一个 API 来简单地读取我的本地应用程序文件?

我在我的中使用以下依赖项版本(以及其他版本)package.json

0 投票
2 回答
1810 浏览

cordova - 获取上传图像的文件传输插件cordova的错误代码3

尝试使用带有以下代码片段的科尔多瓦文件传输插件上传图像。

但我收到错误:

{"code":3,"source":"file:///data/user/0/com.app.package/68-image.jpg","target":" https://api.server.com /v1/users/upload-user-picture ","http_status":null,"body":null,"exception":"链验证失败"}

我尝试到现在:

  1. 在选项标题中添加连接参数:

options.headers = { 连接:“关闭”};

2.添加true作为上传功能的最后一个参数。

如上所述仍然出现错误。

0 投票
0 回答
679 浏览

android - 科尔多瓦中大文件的文件写入和附加

我正在关注使用PhoneGap FileWriter.write for“大”文件方法在cordova android应用程序中写入大文件。但在此我无法附加净 mb 数据。结果只是前 1mb 数据。有人可以帮我解决这个问题吗

我的代码

}

0 投票
2 回答
957 浏览

cordova - Phonegap cordova.file 未定义

我有一个 Phonegap 应用程序,我在其中尝试将文件保存到设备的存储中,但是在将插件包含cordova-plugin-file在 config.xml 文件中之后,该cordova.file对象仍未定义。我正在使用 cli 使用 Phonegap Build 构建应用程序cli-6.5.0

使用 Chrome 检查器工具,我可以看到当我尝试记录cordova.file对象时,它返回未定义,记录cordova返回日志中的 cordova 对象。

以下是来自控制台的日志,如上所述:

控制台测试

以下行在我的 config.xml 文件中:

这是我用来保存文件的代码:

但是,此功能永远不会运行,并且我没有通过 Chrome 检查器工具在控制台中看到任何日志。imageBlob是一个包含 base64 图像的 Blob 对象,该图像已转换为 Blob 对象,但代码永远不会达到那样的程度。

我还使用specconfig.xml 文件中的属性尝试了旧版本的插件,但这不起作用。

0 投票
2 回答
172 浏览

cordova - 如何在安装了cordova-plugin-file的cordova中使用w3c File对象?

我正在尝试使用默认的 File() 构造函数创建一个 File 对象,但是由于 cordova-plugin-file 用它自己的 File() 构造函数的实现替换了构造函数,所以我无法获取 File 对象。有没有办法在不删除文件插件的情况下访问 w3c File 构造函数?

此外,是否可以编辑插件,以便可以将 File() 构造函数重命名为 FileCordova() 之类的任何其他内容,以便可以访问默认构造函数和插件的构造函数?

PS:我需要 File 对象传入一个只接受 w3c File 对象的函数,所以插件返回的对象对我来说几乎没用。

0 投票
3 回答
2203 浏览

ionic-framework - Ionic 3 从录制的文件中获取 base64 音频字符串

我正在使用cordova-plugin-media在我的适用于 android 的 ionic 应用程序中录制语音(具有暂停和恢复功能)。录制完成后,我需要获取 base64 字符串才能使用 html 音频标签播放它。问题是:如果我试图将暂停和恢复的录音保存为 3gp 文件('voice.3gp'),那么当我使用cordova-plugin-file 的readAsDataURL 方法时,我什么也没有收到(回调根本没有调用)。如果我试图将其保存为 mp3 或 wav 文件,那么我只会收到录音的第一部分(暂停前)。我想正确的音频文件扩展名应该是 3gp,因为这个扩展名用于“cordova-plugin-media”的实现,但是我在使用 html 音频标签播放这个文件时遇到了问题。任何帮助都会得到帮助

0 投票
1 回答
80 浏览

android - cordova_plugin_file_chooser 不能在同一设备上为两个不同的应用程序工作

我正在使用 cordova cli 来创建 android 应用程序。

我有用户 cordova_plugin_file_chooser

它在下面给出的地方

请注意,与 ContentProvider 一样,DocumentProvider 权限必须是唯一的。您应该更改清单中的 com.ianhanniballake.localstorage.documents 以及 LocalStorageProvider.AUTHORITY 字段。

通过上面,我通过将 android:authorities="com.crypho.localstorage.documents" 更改为 com.12345.localstorate.documents 在我的 AndroidManifest 中进行了更新,但是当我使用 cordova build android 构建应用程序时,它在清单文件中添加了具有现有名称的新实例android:authorities="com.crypho.localstorage.documents"

谁能知道我应该在哪里更改代码?

更新:仍未解决提供商名称冲突的问题。 在此处输入图像描述