如何将文件从一个应用程序传输到同一 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 传输到外围设备

如何从iOS设备转移音乐文件

将音频流式传输到本地网络

从 iPhone 应用程序通过蓝牙传输文件

XMPPFramework - 如何将图像从一台设备传输到另一台设备?

ios 配置文件无法传输到设备