iOS应用程序使用新的文档支持API进行应用程序之间数据传输

8
问题:

构建企业应用程序时,需要能够从一个应用程序传递数据到另一个应用程序。 例如:App1是一个条形码阅读器,可以生成库存清单。 App2需要与App1刚刚生成的相同的库存清单信息的“新鲜”副本,以便实现其生成采购订单的目标。 两个应用程序和数据库太大,无法压缩在单个应用程序中,而且该套件将继续增长,包括越来越多的应用程序。


理解:


我完全明白“每个”应用程序都位于其自己的沙箱中。 但是,在阅读有关新UIDocumentInteractionController API的文档时,它似乎表明应用程序可以稍微走出沙盒,以“读入”,“查看”或“打开”不是套件部分或在应用程序内创建的文档。


数据流:


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

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

总之,我似乎无法理解:

  1. App1的数据需要去哪里?
  2. 如何在其他应用程序(例如App2)中查找数据?
  3. 如何“打开”存在于另一个应用程序沙盒中的文件?

最终结果: 我一直试图避免使用

文档交互文档概述:

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

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


打开电子邮件文件附件和在iBooks中打开pdf不能是您可以利用此API的唯一位置,否则苹果就不会进行所有工作,它们已经允许从应用程序到应用程序进行通信。

注意:我并不试图让App1直接将数据传输到App2的文件中。我认为这是不被苹果允许的!我试图让App1压缩其数据,将其保存在正确的位置,以便当用户决定使用App2时,“读取”数据即可使数据对App2可用。
如果有人有示例应用程序、教程或甚至是一个可行的想法来实现这一点,我将非常感激你的帮助。
-谢谢!
P.S. 请拥有1,500或更高声望的人为stackoverflow创建一个“UIDocumentInteraction”标签!
1个回答

7

上个月我成功了。以下是我的思维模型:

App1在其沙盒中的任何位置创建文件。

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

用户选择“在App2中打开”

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

App2实现didfinishlaunchingwithURL并加载提供的URL(即其沙盒中的副本)


“Documents”目录是一个合适的位置;即使现在没有区别,我建议使用该目录以备将来可能的功能。 - Matthew Frederick
感谢逻辑的澄清。 "didFinishLaunchingWithOptions:" 如何获取启动URL,我假设它指向原始文件的名称和位置?是完整的文件副本实际上被复制、打包并发送到第二个文档中...还是只是URL,用于找到原始文件?如果完整的文件被复制,是否可能将副本放在App2的文档文件夹中,以便App2可以在以后自己的加载中使用它?或者在用户在App2中切换屏幕或完成查看之后,文件是否会被删除或重新获取? - Newbyman
启动URL指向App2沙盒中的COPY。它是完整的副本(必须是这样,因为您的应用程序无法读取其外部的文件)。我认为它会一直保留在那里,直到App2选择删除它。 - Kris Van Bael
  • App1调用docinteraction来显示该文件的“打开方式”GUI界面
  • 用户选择“在App2中打开”.....您如何执行这两个步骤?我找不到任何文档/代码片段:(
- Nick
http://developer.apple.com/library/ios/ipad/#documentation/UIKit/Reference/UIDocumentInteractionController_class/Reference/Reference.html%23//apple_ref/occ/cl/UIDocumentInteractionController - Kris Van Bael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接