问题标签 [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 投票
1 回答
2927 浏览

android - cordova-plugin-camera:权限拒绝:读取 com.android.providers.media.MediaDocumentsProvider 需要 android.permission.MANAGE_DOCUMENTS

我有一个离子移动应用程序,在我的应用程序中,我希望能够从图库中选择图像,但在选择图像后出现此错误

这是我从图库中选择图像并添加它的代码

我的 config.xml 文件

这发生在 android 5.1.1 手机上。

我的猜测是,当调用 resolveLocalFileSystemURL 方法时,这是由 cordova-file-plugin 以某种方式引起的,但我该如何解决这个问题?

0 投票
1 回答
542 浏览

javascript - 来自 ms-appdata:///local 的 img 未使用 Winjs/cordova 显示

我正在使用 Visual Studio 和 cordova 工具构建一个小型应用程序。该应用程序显示一系列问题,用户可以在每个问题上拍摄多张照片并在其中绘制。

它针对 Windows 8.1 的应用程序,但将来将针对 android,所以我尝试不使用本机 Windows 功能。

在应用程序中有一个叠加层,用户可以在其中使用 cordova-pluggin-camera 拍照。然后将拍摄的照片显示在 img 元素中,然后将其复制到要绘制的画布元素中,并且当用户将照片(与用户绘图)保存到 ms-appdata://local/XXX.png 时。图像已正确保存,我已经检查了文件系统,它在那里并且是一个有效的 png 文件。

这是我用来编写的代码,使用 cordova-plugin-file (v 4.1.1-dev) 将图像写入文件:

writelog 函数是这样的:

将文件保存到磁盘后,我使用两个文件的路径更新命名空间。原作,名为“original”,绘制的名为“anotacao”。

之后,我使用连接到 Winjs Flipview 组件的文件名更新第二个命名空间。我使用第二个命名空间,因为我只想显示来自原始命名空间的一小部分的图像,即来自一个问题。

在 HTML 中,我有一个模板和一个连接到 FotosNP 命名空间的 fliview。如果将“原始”放在绑定字段中,则翻转视图可以正常工作。如果我将“anotacao”放在绑定字段中,即使我关闭并打开覆盖,图像也不会加载。

两张照片都保存到同一个文件夹:ms-appdata:///local/。

我已经使用 DOM 检查器检查了 HTML,并且 src 属性是正确的。我尝试使用 Javascript 控制台并在图像标签上显示绘制的照片,但它也没有显示。

我尝试在更新 Flipview 命名空间之前设置超时,因为我认为这可能是写入磁盘的某种延迟。

我尝试了不同的组件,也使用了普通的 img 元素,但它没有显示照片。

照片未显示错误

如果我关闭并再次运行该应用程序,并用照片加载保存的问题,照片就会正确显示。

我在文件写入时做错了什么?请帮忙。

0 投票
0 回答
1149 浏览

javascript - 无法在 Chrome 中使用 cordova-plugin-file :调用 window.resolveLocalFileSystemURL 时出现 SecurityError

我在浏览器平台上使用最新的科尔多瓦(我知道这是一些相当实验性的)。

我需要在cordova.file.dataDirectory目录中读写。在 Chrome 中正确触发了 filePluginIsReady 事件,我将读/写操作放在它的回调中。

我使用cordova-plugin-file(最新),在 Firefox 和 Internet Explorer 11 上运行良好,但在 Google Chrome 上,调用window.resolveLocalFileSystemURL总是引发这个FileError

代码:2 消息:“确定某些文件在 Web 应用程序中访问不安全,或者对文件资源进行了太多调用。” 名称:“安全错误”

我仔细阅读了 cordova-plugin-file README 和关于浏览器和 chrome 的怪癖(授予大配额,初始化文件系统)。

向 chrome 启动器添加 --allow-file-access 选项无助于访问文件系统:file:///persistent/。

使用 cordova-plugin-file 中的 Chrome 特定代码,我希望它能够完美运行。有什么线索吗?

0 投票
0 回答
20 浏览

cordova-plugin-file - 使用 cordova-plugin-file 写入卸载持久性路径

我想将用户 ID 保存在一个永久位置,该位置将在应用程序在 Android 和 iPhone 上卸载并重新安装后保留。

如何使用cordova-plugin-file 做到这一点?

0 投票
1 回答
810 浏览

windows - 使用适用于 UWP 的 cordova 文件插件在 Windows 上获取文件系统

希望使用 cordova 创建 UWP APP。

该应用程序需要扫描文件系统以获取设备上的 mp3 文件列表,该设备可能是装有 windows 10 的台式电脑或手机。

但是,Cordova 能够看到虚拟路径,而不是设备上的 C 驱动器或 D 驱动器。

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, 失败);

接收到的 FS 对象的 winPath 如下所示

C:/Users/{USERID}/AppData/Local/Packages/{AppNameSpace}_bzbj8h50hftv4/LocalState/

这是FS的根目录,不能将目录移动到C:驱动器,这是不允许的。

所以问题是,UWP 或任何 Windows 平台是否不会将存储设备暴露给 Cordova 应用程序?或者我做错了什么,因为我是 Cordova 开发的新手。

0 投票
1 回答
1801 浏览

ios - 如何在带有 cordova 的 iOS 设备中从 iCloud 读取文件?

我想阅读存储在 iCloud 中的 PDF 文件的内容。

  1. 我使用 FilePicker Phonegap iOS 插件 ( https://github.com/jcesarmobile/FilePicker-Phonegap-iOS-Plugin ) 选择文件。该插件为我提供了复制文件的临时路径。

  2. 我想用 Cordova 文件插件 ( https://github.com/apache/cordova-plugin-file ) 阅读它,但我做错了,日志总是给我一个错误。

这是代码:

这就是输出:

我究竟做错了什么?

0 投票
0 回答
1739 浏览

ios - 为什么 cordova-plugin-file 给我的 cordova.file.dataDirectory 为空?

通过 Xcode 7.3 在 iPhone 6 上运行并在 Safari Web Inspector 中进行测试,我使用的是 Cordova File 插件。我正在运行从 cordova-plugin-camera 文档中复制的示例代码以保存图像:

发生的情况是 window.resolveLocalFileSystemURL() 失败,因为目录规范 cordova.file.dataDirectory 为空。事实上,所有可能的 cordova.file.* 目录都是空的。为什么?

下图应回答相关问题 - 适用于 iOS 的cordova 4.1.1 正在运行,cordova 文件存在,window.resolveLocalFileSystemURL() 有效。

为什么所有符号目录名称都为空?

在此处输入图像描述

这是位于应用根目录的 config.xml 文件,./config.xml

这个config.xml在ios平台,./platforms/ios/PayLive/config.xml

这是应用程序根目录下的 config.xml 文件,./config.xml 这个 config.xml 在 ios 平台中,./platforms/ios/PayLive/config.xml

0 投票
1 回答
907 浏览

ionic2 - FileReader 加载文件后 Ionic2 视图未更新

开发环境

cju:~/Projects/ionic2/i2ts $ ionic info
WARN: ionic.config.js 已被弃用,您可以将其删除。
您的系统信息:
Cordova CLI:6.1.1
Gulp 版本:CLI 版本 3.9.1
Gulp local:本地版本 3.9.1
Ionic Framework 版本:2.0.0-beta.6
Ionic CLI 版本:2.0.0-beta.25
Ionic App Lib 版本:2.0.0-beta.15
ios-deploy 版本:1.8.5
ios-sim 版本:5.0.8
操作系统:Mac OS X El Capitan
节点版本:v4.4.2
Xcode 版本:Xcode 7.3 Build 版本 7D175

问题

我在浏览器平台和ios手机上都试过了。要在浏览器平台上查看它,请执行以下操作

离子平台添加浏览器

离子运行浏览器

在浏览器上,它从“Hello Ionic”页面开始。单击“使用cordova-plugin-file 写入本地文件”按钮,在背面,“这是新文本”将使用cordova-plugin-file 写入本地文件。单击“使用cordova-plugin-file 从文件读取”按钮,控制台日志显示文件已读回。但是,视图没有更新。再次单击任何按钮,视图将更新为新文本。

我用谷歌搜索并发现了一个相关问题https://github.com/angular/zone.js/issues/137。也就是说,cordova-plugin-file 中的 FileReader 没有分区。但我在我的项目中使用“ionic-angular”:“2.0.0-beta.6”。它不应该已经包含修复程序。我仍然在我的 ionic2 项目中看到相同的问题 137。

代码位于https://github.com/CharlesJu1/FileReaderNotZoned

这是 hello-ionic.ts 文件。

这是 hello-ionic.html 文件。

0 投票
2 回答
14667 浏览

android - Cordova android - 如何用生成的替换自定义 build.gradle

我有一个cordova项目,我在其中添加了android平台。现在我需要使用我的 build.gradle 文件而不是生成的文件。

在 plugins.xml 中,我有下面的代码来做到这一点。

但是在添加插件的时候,这个 build.gradle 已经放到了 package 下。看起来是这样的。

而且我在生成的 build.gradle 中遇到了错误。

我需要我的自定义 build.gradle 替换自动生成的。请告诉我如何在plugin.xml中指定这个我使用的cordova版本是6.1.1

0 投票
2 回答
4569 浏览

android - Cordova + Android Studio 错误:'com.android.build.gradle.BasePlugin' 没有实现插件接口

我正在通过cordova插件创建android项目,但是在创建的android项目中,它有build.gradle

代替,

所以它给了我错误,

为什么会这样?如何让它根据gradle的版本自动生成?

这是我的 build-extras.gradle,

但是我已经删除了类路径依赖项并尝试了,即使是同样的问题。

这是生成的build.gradle,