8

问题:


构建套件性质的企业应用程序,并且需要能够将数据从一个应用程序传递到另一个应用程序。示例:App1 是一个产生库存清单的条码阅读器。App2 需要 App1 刚刚生成的相同库存清单信息的“新”副本,以完成生成采购订单的目标。这两个应用程序和数据库是两个大的,可以挤在一个应用程序中,而且该套件将随着越来越多的应用程序而继续增长。


理解:


我完全理解“每个”应用程序都在它自己的沙箱中。但是,在阅读有关新 UIDocumentInteractionController API 的文档时,应用程序似乎可以稍微跳出沙箱,以“读入”、“查看”或“打开”未分开的文档捆绑包或在应用程序中创建。


数据流:


我试图保持简单。我一直在使用从 Apple 下载的 DocInteraction 示例应用程序,以及另一个名为 App1 的应用程序来尝试使用一个简单的文本文件。在 App1 中,我创建了一个简单的 txt 文件,并将其保存到文档文件夹中。(但这仍然在应用程序的沙箱内?)。在 DocInteraction 修改示例中,我一直在尝试寻找一种方法来“查看”、“打开”或更好地“读取”创建的 txt 文件。如果我可以在两者之间传递一个简单的 txt 文件,我可以包含一个 CSV 结构,以便在打开应用程序时更新每一侧的数据库。

我尝试使用启动选项键,但没有成功。

简而言之,我似乎无法理解:

  1. App1的数据需要去哪里?
  2. 如何在另一个应用程序中找到数据,比如 App2?
  3. 您如何“打开”存在于另一个应用程序沙箱中的文件?

最终结果:我试图远离

文档交互文档大纲:

  • 预览文档或展示选项
  • 注册您对文件类型的支持
  • 从其他应用程序打开文件
  • 显示和打印快速查看预览

我最感兴趣的是“从其他应用程序打开文件”。它指导我通过传入键的字典值来使用 application:didFinishLaunchingWithOptions: 方法。这就是我迷路的地方??如何设置密钥,以便它知道要查找的“WHERE”和“WHAT”?而且我仍然不清楚 App1 应该将信息保存到哪个正确的导演,以便让键指向正确的位置?


在 iBooks 中打开电子邮件文件附件和打开 pdf 文件并不是您可以使用此 API 的唯一地方,否则 Apple 不会完成所有工作,它们已经允许从 App-To-App 进行对话。


注意: 我不是想让 App1 直接将数据传输到 App2 的文件中。我认为Apple根本不允许这样做!我试图让 App1 压缩其数据,将其保存在适当的位置,因此当用户决定使用 App2 时,数据可以通过“读入”数据供 App2 使用。


如果有人有一个示例应用程序、教程,甚至是如何让这个工作的可靠想法,我将非常感谢您的帮助。

-谢谢!

PS 拥有 1,500 或更高声誉的人请为 stackoverflow 创建一个“UIDocumentInteraction”标签!

4

1 回答 1

7

我上个月开始工作了。这是我的心智模型:

App1 在其沙箱中的任何位置创建一个文件。

App1 调用 docinteraction 以显示该文件的“打开方式”GUI

用户选择“在 App2 中打开”

iOS 将文件从一个沙箱复制到另一个沙箱并启动 App2。

App2 实现 didfinishlaunchingwithURL 并加载提供的 URL(这是其沙箱中的副本)

于 2011-01-26T22:53:25.920 回答