我有一个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的第三方应用程序是每个操作系统的标准。任何帮助,将不胜感激。
答案 0 :(得分:1)
我正在使用带有IOS的cordova-plugin-file-opener2插件。我将文件保存在cordova.file.cacheDirectory中,当我将zip文件保存到该位置时,这对我来说很好。我首先必须安装一个zip文件管理器,以便处理mimeType = application / zip。我使用的zip文件管理器是“Zip Viewer”的免费版本,看起来不错,但有一些广告。
要让它在Android上运行,我必须保存我的文件 cordova.file.externalRootDirectory当我使用cordova.file.cacheDirectory for Android时,它无声地失败了。您不能对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");
}
});
答案 1 :(得分:0)
iOS没有可公开访问的文件系统目录 一种方法 - 通过UIActivityViewController使用共享。