如何将文件从一个应用程序传输到同一 iOS 设备中的另一个应用程序?
Posted
技术标签:
【中文标题】如何将文件从一个应用程序传输到同一 iOS 设备中的另一个应用程序?【英文标题】:How can I transfer files from one application to another in the same iOS device? 【发布时间】:2011-08-12 02:06:49 【问题描述】:我正在编写一个 ios 应用程序,它将同一设备上另一个应用程序保存的文件转换为另一种格式。如何将文件从一个应用程序传输到同一设备中的另一个应用程序?请注意,这些文件是非文本文件。
【问题讨论】:
【参考方案1】:UIDocumentInteractionController
是你的朋友。
基本上是这样工作的:
-
App 1 注册为能够处理 XYZ 类型的文件
App 2 实现了
UIDocumentInteractionController
,并将为用户提供“将文件发送到 App1”的选项(我相信这必须由用户激活)
App 1 实现-(BOOL)application:openURL:sourceApplication:annotation:
并处理传输的文件,该文件将保存在您的Documents/Inbox
目录中。从那里您可以将文件复制到其他地方,然后对其进行操作,确保通过删除收件箱文件夹中保存的原始文件进行清理。
类参考可用here
提供文档交互编程指南here
【讨论】:
所以这意味着 App1 只有当且仅当 App2 允许时才能访问该文件,但反之则不行(Windows 操作系统的运行方式)。我说的对吗? 没错,文件只能发给app1,app1不能从app2拉取。但话虽如此,您可以尝试注册一个自定义 URI 方案,该方案允许 app1 从 app2“请求”某些内容并让 app2 相应地响应它。不过这只是理论,我自己没有尝试过。 是否可以发送多个文件? - 就像在标准照片应用程序中选择多张照片附加到电子邮件一样。 @rog 我可以获取示例代码或示例来接收和传输音频文件吗?我被困在这一点上。你能看看我的问题吗:***.com/questions/37697612/…【参考方案2】:如果您同时开发这两个应用程序,则只要您的捆绑包标识符符合相同的捆绑包种子 ID,您就可以将共享信息存储在钥匙串中。请参阅here 了解更多信息。当然,如果您同时制作这两个应用程序,您也可以使用 URL 方案来传递 base64 编码的数据。
更新:正如 rog 下面所说,UIDocumentInteractionController 很棒,但它仅适用于 4.2 及更高版本,因此如果您想使用它,您将削减大部分用户。
【讨论】:
以上是关于如何将文件从一个应用程序传输到同一 iOS 设备中的另一个应用程序?的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 的后台模式下将数据从 Central 传输到外围设备