使用cordova文件插件时如何从iOS导出文件?
Posted
技术标签:
【中文标题】使用cordova文件插件时如何从iOS导出文件?【英文标题】:how do you export a file out of iOS when using cordova file plugin? 【发布时间】:2015-07-22 05:53:30 【问题描述】:我在 ios 设备上使用 https://github.com/apache/cordova-plugin-file 并尝试写入文件。我可以写文件,但根据 iOS 文件系统布局,我写的所有这些位置都是私有的。
我猜这是由于 Apple 的沙盒安全模型,因此每个应用程序只能查看其自己的捆绑包中的文件。这在 cordova.file.externalRootDirectory
位置不是私有的 android 上是不同的。
我的问题是:如何从 iOS 设备导出此文件?
我正在编写的文件包含一长串由我正在运行的 Cordova 应用程序捕获的 GPS 位置列表。我可以在 XCode 中的设备下查看该文件,然后导出整个容器以查看该文件。但是必须有更好的方法来传输文件。是否可以通过 iTunes 或 iCloud 将 Cordova 生成的文件从 iOS 设备传输到计算机?
我也尝试过使用cordova.file.syncedDataDirectory
,我可以将文件写入该位置。但该文件没有出现在我的 iCloud 帐户中。
【问题讨论】:
【参考方案1】:你必须使用iTunes文件共享
文件共享支持
文件共享支持让应用程序可以让用户数据文件在 iTunes 9.1 及更高版本。声明支持文件的应用程序 共享使其 /Documents 目录的内容可用于 用户。然后,用户可以将文件移入和移出此目录 从 iTunes 需要。此功能不允许您的应用共享 与同一设备上的其他应用程序的文件;这种行为需要 粘贴板或文档交互控制器对象。
要为您的应用启用文件共享,请执行以下操作:
将 UIFileSharingEnabled 键添加到应用的 Info.plist 文件中,并将键的值设置为 YES。
将您想要共享的任何文件放在应用的 Documents 目录中。
当设备插入用户的计算机时,iTunes 会在选定的应用程序选项卡中显示文件共享部分 设备。
用户可以将文件添加到此目录或将文件移动到桌面。
支持文件共享的应用程序应该能够识别文件何时 已添加到 Documents 目录并做出适当响应。 例如,您的应用可能会生成任何新文件的内容 可从其界面获得。你永远不应该向用户展示 此目录中的文件列表并要求他们决定要做什么 与这些文件。
因此,将 UIFileSharingEnabled
添加到您的 info.plist 并将其设置为 YES
https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/CoreServicesLayer/CoreServicesLayer.html#//apple_ref/doc/uid/TP40007898-CH10-SW30
【讨论】:
插件cordova-plugin-itunesfilesharing
自动添加此键和正确的YES
值
有什么方法可以将文件保存到 iCloud、云端硬盘、草稿等云应用中。whatsapp、facebook 和 skype 等流行应用的效果如何?
使用文件插件,如果你使用cordova.file.syncedDataDirectory
,应该备份在iCloud上。除此之外,您将需要一个插件来将内容保存在 iCloud 中,不确定是否有可用的。【参考方案2】:
@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
【讨论】:
是的,这将适用于 phonegap 构建用户。进行本地开发的用户必须手动编辑 .plist 或创建一个仅将其写入 info.plist 的插件以上是关于使用cordova文件插件时如何从iOS导出文件?的主要内容,如果未能解决你的问题,请参考以下文章
将cordova文件插件添加到现有ios项目时重复符号_kCDVFilesystemURLPrefix
Visual Studio 2013 更新 4 cordova,如何导出 Android apk 文件发布到 PlayStore