两个iPhone应用之间的数据共享

5

我希望能在两个iPhone应用程序之间共享文本数据。我该如何使用粘贴板来实现这一目的?能否提供一个示例代码帮助我解决问题。谢谢您的帮助。如果有比粘贴板更好的方法来完成此任务,请给我建议。

2个回答

7
如果您只想使用IPC,请让您的两个应用程序都识别一些URL方案。然后调用:
[[UIApplication sharedApplication] openURL:
  [NSURL URLWithString:@"theOtherApp://dataToShare"]];

要发送并使用-application:handleOpenURL:进行接收,请使用此方法。


如需通过剪贴板共享字符串,请使用此方法。

 UIPasteboard* board = [UIPasteboard generalPasteboard];
 board.string = @"Some string to share";

为了保存和使用数据,可以使用board.string作为getter来检索要共享的字符串。但是,如果用户复制了共享数据之间的任何内容,则会丢失您的共享数据。


另外,您还可以通过以下方式共享:

  • 地址簿。创建一个虚拟联系人并将其用于共享。
  • 钥匙串。创建一个共享钥匙串项目。仅适用于3.x版本。
  • 从共享文件夹中读取/写入/var/mobile/Library/AddressBook以及KeyboardPreferences即使您的应用程序被沙盒化也可以访问。但这可能违反SDK规则。

0

你可以使用自定义URL schemes在应用之间进行通信。

除非用户明确想要将某些内容复制到剪贴板,否则我不会污染用户的剪贴板。想象一下,将文本片段存储在剪贴板中,然后有些应用程序为了向另一个应用程序发送数据而覆盖它...这不是一个良好的用户体验。

更新:

正如@ohhorob所评论的,可以创建自定义粘贴板。如果要通过粘贴板共享数据,请确保创建自己的(持久性)应用程序粘贴板并使用它,而不是主粘贴板。欲了解更多信息,请参阅这里


2
Steve,不需要像KennyTM建议的那样使用通用剪贴板。剪贴板可以有一个特定的固定名称,并且可以持久存在供其他应用程序使用。 - ohhorob

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