无法使用cordova fileopener插件打开本地文件

Posted

技术标签:

【中文标题】无法使用cordova fileopener插件打开本地文件【英文标题】:Can`t open local file with cordova fileopener plugin 【发布时间】:2016-06-21 14:01:36 【问题描述】:

android 5.0 设备上,我遇到下载文件可以t be opened bycordova fileopener pluginnorInAppBrowsernorwindow.open` 的问题。

文件被下载并保存到FileSystem.root.getURL()给出的app根路径下->file:///data/data/myappid/files/files/

如果我使用cordova fileopener 插件打开文件例如:

`cordova.plugins.FileOpener.openFile("file:///data/data/myappid/files/files/mydocument.pdf", successFn, failureFn);`

似乎一切正常。没有错误,并且显示了例外的“应用程序选择提示”以选择例如 pdf-viewer 或图像查看器重新下载文件 mime 类型。到目前为止还好。

但是选择后不管是哪个app,都会报错,无法打开文件。

ios 上,可以使用window.open 打开下载文件,没有任何问题。

我认为该文件未正确保存在 android 设备上,但为什么呢?可能是根路径不正确或者我还不知道有什么限制。

【问题讨论】:

很久以前和最近都试过这个。这对我来说仍然是个谜。据我所知,至少我无法将文件写入应用程序数据目录。因此,您将无法打开它,因为它将不存在。查看链接 - ***.com/questions/35526078/… 查看此链接以获取文件打开器的工作示例 - github.com/gandhirajan/Cordova_File_Operations 好的,谢谢。我会检查一下。 后面的链接和来源对我帮助很大。是的,“window.resolveLocalFileSystemURL(cordova.file.cacheDirectory”不起作用,所以我将其更改为“cordova.file.externalRootDirectory”。我仍然需要对 iOS 进行一些改进,但总体问题已得到解答。谢谢! 很高兴它对您有所帮助,因为这是我在 github 上的第一个 repo。很高兴它帮助了你。贴出答案。请接受相同的,以便其他人受益。快乐编码。干杯。 【参考方案1】:

很久以前和最近都尝试过。这对我来说仍然是个谜。据我所知,至少我无法将文件写入应用程序数据目录。因此,您将无法打开该文件,因为它不存在。

请您改用cordova.file.externalRootDirectory。有关 fileopener 插件的更多信息,请查看Cordova file operations link

【讨论】:

那行得通。谢谢你。文档没有提到这一点。所以你节省了我的时间;)

以上是关于无法使用cordova fileopener插件打开本地文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 phonegap 网站上提交插件?

cordova打开文件系统插件的使用: cordova-plugin-file-opener2

Cordova 插件,允许用户浏览文件并上传所选文件 (iOS)

CORDOVA :添加cordova-plugin-file-opener2插件cordova打包报错

No.2 Ionic超级逗表情 App

无法删除 Cordova 插件