我有一个cordova应用程序,它从互联网上下载pdf文件,并使用cordova-plugin-file和cordova-plugin- file -transfer将其保存到本地文件系统。在下一步中,我想使用指定mimetype的默认应用程序打开该文件。为此,我使用cordova- plugin -file-opener2插件。保存文件的目录需要对所选第三方应用程序可读,才能打开文件。在android上,有几个可公开访问的文件系统目录,我可以让它正常工作。但是我无法找到正确的目录,我需要在iOS的情况下保存文件,使其可用于选定的默认第三方应用程序。
cordova-plugin-file在其文档中表示,在RW模式下可用于cordova应用程序的所有目录都是私有的:https://github.com/apache/cordova-plugin-file#file-system-layouts
但是它是怎么来的呢?默认情况下,基于mimetype的第三方应用程序打开文件的概念是每个操作系统的标准。任何帮助都将不胜感激。
发布于 2016-08-12 23:41:10
iOS没有可公开访问的文件系统目录。
一种方式-通过UIActivityViewController使用共享。
发布于 2017-03-04 14:36:17
我在IOS中使用cordova- plugin -file-opener2插件。我将我的文件保存在cordova.file.cacheDirectory中,当我将zip文件保存到该位置时,这对我来说工作得很好。我首先必须安装一个压缩文件管理器,以便处理mimeType = application/zip。我使用的zip文件管理器是一个免费版本的"Zip Viewer“,它看起来不错,但有一些广告。
为了让它在安卓上工作,我不得不将我的文件保存在cordova.file.externalRootDirectory中,当我在安卓上使用cordova.file.cacheDirectory时,它无声地失败了。你不能为IOS使用cordova.file.externalRootDirectory,因为根据Cordova文件插件文档,它不是为IOS定义的。
以下是保存文件时调用的代码片段:
var fileName = "myfile.zip";
//for IOS
var filePath = cordova.file.cacheDirectory+"/Download/"+fileName;
//for Android
//var filePath = cordova.file.externalRootDirectory+"/Download/"+fileName;
var mimeType = "application/zip";
cordova.plugins.fileOpener2.open(
filePath,
mimeType,
{error : function(){
my.alert("ERROR opening with cordova.plugins.fileOpener2");
},
success : function(){
my.log("SUCCESS opening zip file");
}
});https://stackoverflow.com/questions/38921594
复制相似问题