2016-08-12 169 views
3

我有一个cordova应用程序,用于从互联网下载pdf文件,并使用cordova-plugin-file和cordova-plugin-file-transfer将其保存到本地文件系统。在下一步中,我想使用默认应用程序为指定的mimetype打开文件。我正在使用cordova-plugin-file-opener2插件。保存文件的目录对于选定的第三方应用程序来说需要可读取以打开文件。在Android上有几个公共可访问的文件系统目录,我让它正常工作。但是我无法找到正确的目录,我需要在iOS的情况下保存文件,以使其可用于选定的默认第三方应用程序。 https://github.com/apache/cordova-plugin-file#file-system-layouts将文件保存到iOS的公共目录中使用cordova

但它是如何来:

科尔多瓦 - 插件文件在其文档,为科尔多瓦应用RW模式下可用的所有目录都是私人说?默认打开文件的概念基于mimetype的第三方应用程序在每个操作系统中都是标准的。任何帮助,将不胜感激。

回答

0

iOS尚未公开访问文件系统目录。
单程 - 通过UIActivityViewController使用共享。

+0

感谢您的答复。我的首要任务是找到现有的科尔多瓦解决方案。使用UIActivityViewController编写我自己的插件或桥梁,使其工作真的是我最后的可能方式。 –

+0

我只想帮忙,在iOS中没有公开文件夹。 – Igor

1

我在IOS上使用cordova-plugin-file-opener2插件。我将文件保存在cordova.file.cacheDirectory中,当我将zip文件保存到该位置时,此工作正常。我首先必须安装一个zip文件管理器来处理mimeType = application/zip。我使用的zip文件管理器是一个免费版本的“Zip Viewer”,它看起来不错,但有几个广告。

为了让它在Android上运行,我必须将我的文件保存在 cordova.file.externalRootDirectory当我为Android使用cordova.file.cacheDirectory时,它无提示地失败。根据Cordova File Plugin文档,您不能使用cordova.file.externalRootDirectory for IOS,因为它没有为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"); 
       } 
    }); 
相关问题