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

问题描述:

我在iOS设备上使用https://github.com/apache/cordova-plugin-file,我试图写入文件。我可以编写文件,但根据iOS文件系统布局,我写的所有这些位置都是私有的。如何在使用cordova文件插件时将文件从iOS中导出?

我猜这是由于苹果的沙箱安全模型,使每个应用程序只能看到自己的捆绑包内的文件。这在Android上不同,0​​的位置不是私人的。

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

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

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

你必须使用iTunes文件共享

文件共享支持

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

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

添加UIFileSharingEnabled关键看你的应用程序的Info.plist文件,并设置关键YES的价值。

将任何想要共享的文件放入应用程序的Documents目录中。

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

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

支持文件共享的应用程序应该能够识别何时将文件 添加到Documents目录并作出适当响应。 例如,您的应用可能会使其任何新文件的内容 都可以从其界面获得。您绝不应该向用户提供 该目录中的文件列表,并要求他们决定如何对这些文件执行 。

因此,将UIFileSharingEnabled添加到您的信息。plist中,并将其设置为YES

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

+1

插件'科尔多瓦 - 插件 - itunesfilesharing'增加适当'YES'值此键可以自动 –

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

<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

+0

是的,这会为PhoneGap的构建用户的工作。进行本地开发的用户必须手动编辑.plist或创建一个插件,将其写入info.plist – jcesarmobile