如何在使用cordova文件插件时从iOS中导出文件?

我在iOS设备上使用https://github.com/apache/cordova-plugin-file ,并试图写入文件。 我可以写文件,但根据iOS文件系统布局,我写的所有这些位置都是私有的。

我猜这是由于苹果的沙箱安全模式,所以每个应用程序只能看到自己的包内的文件。 这在cordova.file.externalRootDirectory位置不是私有的Android上是不同的。

我的问题是: 如何从iOS设备中导出此文件?

我正在写的文件包含我正在运行的Cordova应用程序捕获的一长串GPS位置。 我可以在设备下的XCode中看到该文件,并导出整个容器以查看该文件。 但是必须有一个更好的方式来传输文件。 是否可以通过iTunes或iCloud将Cordova生成的文件从iOS设备传输到计算机?

我也试过使用cordova.file.syncedDataDirectory ,我可以写文件到那个位置就好了。 但该文件不出现在我的iCloud帐户。

你必须使用iTunes的文件共享

文件共享支持

文件共享支持可让应用程序在iTunes 9.1及更高版本中提供用户数据文件。 声明其对文件共享的支持的应用程序使得其/ Documents目录的内容对用户可用。 用户可以根据需要从iTunes中移入和移出文件。 此function不允许您的应用与同一设备上的其他应用共享文件; 该行为需要粘贴板或文档交互控制器对象。

要为您的应用启用文件共享,请执行以下操作:

将UIFileSharingEnabled键添加到应用程序的Info.plist文件中,并将该键的值设置为YES。

把你想分享的文件放在应用程序的Documents目录中。

当设备插入用户的计算机时,iTunes会在所选设备的“应用程序”选项卡中显示“文件共享”部分。

用户可以将文件添加到此目录或将文件移动到桌面。

支持文件共享的应用程序应该能够识别何时将文件添加到文档目录并作出适当的响应。 例如,您的应用程序可能会使任何新文件的内容从其界面中可用。 您不应该向用户显示该目录中的文件列表,并要求他们决定如何处理这些文件。

因此,将UIFileSharingEnabled添加到您的info.plist并将其设置为YES

https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/CoreServicesLayer/CoreServicesLayer.html#//apple_ref/doc/uid/TP40007898-CH10-SW30

@ jcesarmobile的答案帮助我追踪到,我需要在iOS中启用文件共享。 在确认我可以通过修改XCode中的info.plist文件来启用文件共享后,我发现你可以在config.xml文件中直接设置UIFileSharingEnabled ,但是它有点棘手,因为它不是标准的首选项。

 <gap:config-file platform="ios" parent="UIFileSharingEnabled" mode="replace"> <true/> </gap:config-file> 

把它放在我的config.xml文件,它的工作。

PhoneGap文档中提到了这一点,但我承认它确实被埋没了,有点难以find。

http://docs.build.phonegap.com/en_US/configuring_config_file_element.md.html#Config%20File%20Elements