当前位置: 首页 > 知识库问答 >
问题:

应用程序重新启动后,cordova无法打开摄像机插件返回的文件URL

东方方伟
2023-03-14

我使用的是cordova 7.0.1版和cordova插件摄像机2.4.1版。getPicture(成功函数、失败函数、选项)在选项中,我使用

destinationType: Camera.DestinationType.FILE_URI
sourceType: Camera.PictureSourceType.PHOTOLIBRARY

我得到的图像URI是正确的。我创建了一个“img”元素,并将img.src设置为插件返回的URI,图片显示正确。现在,我将这个URI存储在应用程序的本地文件夹中,并关闭应用程序。我重启应用程序,并从存储中读取imageURI。然后,我创建一个“img”元素,并将img.src设置为URI读取表单存储。

从存储中读取的URI与摄像机插件getPicture()调用之前返回的URI相同。但是,图像文件不会被读取,并且图片不会出现在屏幕上。我看到的错误是无法打开内容URL:

content://com.android.providers.media.documents/document/image:3237 被白名单阻止的网址:content://com.android.providers.media.documents/document/image:3184

所以,我认为这是一个白名单问题。我添加到配置中。xml文件。但这会使应用程序在尝试读取图像文件时崩溃。

我正在运行AndroidMarshmallow的Karbonn手机上尝试。

如果你知道上面的问题,请分享解决方案,我还需要在这里做什么。

共有2个答案

顾昊穹
2023-03-14

FILE_URI返回base64格式,而不是url。为了将图像保存在手机的特定目录中,您需要使用DATA_URL而不是FILE_URI

穆鸿飞
2023-03-14

似乎当从“媒体商店”(如画廊)访问图像而不使用“某个系统应用程序”(如相机)时,普通应用程序必须持有权限android.permission.MANAGE_DOCUMENTS才能访问该图像。

不幸的是,正如这个答案所说,普通应用程序没有这个权限。因此,必须将库图像移动/复制到应用程序文件夹中()file:///storage/emulated/0/Android/data/APP_NAMESPACE)通过使用持有android.permission的“系统应用程序”。MANAGE_DOCUMENTS-权限,以便普通应用程序在重新启动后可以显示此图像。

 类似资料:
  • 我正在使用AngularJS 1.5、Ionic 1和Cordova CLI 8编写一个应用程序。 我正在使用cordova摄像头插件拍照。我的应用程序仅为肖像。不支持横向。 用户拍照后,整个应用程序暂时进入横向模式。它自己解决了,但看起来很担心。我如何防止这种情况发生? 编辑:我正在将这些选项传递到相机插件中:

  • 我有一个使用远程索引页面的Android Phonegap/Cordova应用程序,该页面实现了html5缓存,因此该应用程序可以离线使用。一旦用户使用活动连接启动应用程序以最初填充缓存,这将非常有效,它可以无缝工作,并且在离线时感觉非常本机。 但是,我想优雅地处理离线时第一次启动它的人,即远程页面尚未被缓存时。目前它给出了一个未找到的页面。 我可以在重定向到远程页面之前检查是否有网络连接,但这意

  • 我正在构建一个基于MacOS SwiftUI文档的应用程序,其中我定义了一个新的导出类型标识符,其中包含一个新的扩展名等等。 一开始,我不关心类型标识符,所以我将其命名为,但后来,我试图摆脱字,将标识符更改为Info.plist和文档声明文件中的,但从那以后,每次我尝试重新打开自动保存的文档时,它都不会打开,并且我在控制台中看到以下错误: 此应用程序无法重新打开自动保存的com.example.d

  • 我用保存了一个文件。我的应用程序中的docx扩展名。该文件保存在sdcard中。该文件在我的sdcard中显示为word文件,但我无法打开它(使用polaris或任何其他默认软件),并显示消息“不支持的文件”。 当我保存扩展名为. txt的文件时,我可以打开它。 谢谢亚历山德鲁...但现在我在运行应用程序时收到一条错误消息,指出“此元素的Javadoc既无法在附加的源代码中找到,也不能在附加的Ja

  • > 从github sonarjs插件克隆sonarjs插件 通过mvn install命令创建jar文件 现在,当试图启动声纳服务器时,它会以以下消息停止: 运行sonarqube... wrapper-->wrapper作为控制台启动 wrapper启动jvm... jvm 1 wrapper(版本3.2.3)http://wrapper.tanukisoftware.org jvm 1版权所

  • 问题内容: 我的日食没有启动,因为我的计算机有点死机了,所以我不得不强制重新启动它。当我不得不重新启动时,Eclipse是打开的,我相信这很可能是原因。我不知道该如何解决。每当我尝试打开它时,它都会告诉我检查工作区中的.log文件,并显示: http://paste.strictfp.com/26579 而且我不知道如何解决它。请帮忙? 问题答案: 您缺少 第125行的 类,您必须重新安装才能解决