使用cordova将文件保存到iOS中的公共目录

时间:2016-08-12 15:31:51

标签: ios cordova ionic-framework

我有一个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的第三方应用程序是每个操作系统的标准。任何帮助,将不胜感激。

2 个答案:

答案 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使用共享。