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

时间:2015-07-22 05:53:30

标签: ios cordova cordova-plugins

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

我猜这是由于Apple的沙盒安全模型,所以每个应用程序只能看到自己的捆绑包中的文件。这在Android上是不同的,其中cordova.file.externalRootDirectory位置不是私有的。

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

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

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

2 个答案:

答案 0 :(得分:7)

你必须使用itunes文件共享

  

文件共享支持

     

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

     

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

     

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

     

将您想要分享的任何文件放在应用的文档目录中。

     

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

     

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

     

支持文件共享的应用应该能够识别文件的时间   已添加到Documents目录并进行适当的响应。   例如,您的应用可能会生成任何新文件的内容   可从其界面获得。你永远不应该向用户展示   此目录中的文件列表,并要求他们决定做什么   用这些文件。

所以,将ReferentielClientController添加到您的info.plist并将其设置为UIFileSharingEnabled

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

答案 1 :(得分:4)

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

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

将此文件放入我的config.xml文件后,它就可以了。

这在PhoneGap文档中有所体现,但我承认它真的被埋没了,有点难以找到。

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