两个iphone应用程序之间的数据共享

时间:2010-01-19 07:49:22

标签: iphone share pasteboard

我想在两个iphone应用之间共享文本数据。我怎样才能将粘贴板用于此目的。任何人都可以帮我提供示例代码。提前致谢。建议我是否有比粘贴板更好的方法来完成我的任务。

2 个答案:

答案 0 :(得分: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 only。
  • 从共享文件夹读取/写入。即使您的应用是沙盒,也可以访问/var/mobile/Library/AddressBookKeyboard以及Preferences。这可能会违反SDK规则。

答案 1 :(得分:0)

您可以使用custom URL schemes在您的应用之间进行通信。

我不会污染用户的剪贴板,除非他们特意想要将某些内容复制到剪贴板 - 想象一下将一小段文本存储在剪贴板中然后让一些应用覆盖它以便将数据发送到另一个应用程序的挫败感。 。用户体验不佳。

<强>更新

@ohhorob所述,可以创建自定义粘贴板。如果您要通过粘贴板共享数据,请确保创建自己的(持久性)应用程序粘贴板并使用它来代替主粘贴板。有关详细信息,请参阅here