如何将文本传递给iOS中的第三方应用程序

我的应用程序生成某种文本信息。

用户按下我的应用程序中的“共享”button之后,popup一个窗口,其中包含已安装的应用程序列表或只有可以接收string参数的应用程序。 之后,用户select,例如,“邮件”应用程序,然后用新的电子邮件和我的应用程序给定的文本打开。 或者用户selectSkype应用程序,然后用给定的文本打开它。

这些场景如何在iOS中实现?

PS:我已经看到类似的行为在Android应用程序(通过Intent演员)。

更新:我发布了下面的答案,对我来说(通过UIActivityViewController)正是我需要的。

没有单一的答案,将适用于所有目标应用程序。 你需要研究每个应用程序,看看它是否有从其他应用程序接收信息的设施。

一个简单的方法是调用一个以另一个应用程序为目标的URL。

对于邮件,您可以调用一个mailto:// URL来构build一个电子邮件,其中包含所需字段中的文本(to,cc,bcc,subject或body)。

如果应用程序支持iOS文档模型,则可以将其传递给打开的文档。

如果目标应用程序有一个服务器,那么你也可以连接到服务器,并以这种方式发送数据。 再说一次,这不是一个问题。 每个目标应用程序的答案都不相同,对于某些应用程序,答案将是“你不能,因为它没有任何机制来接收来自外部应用程序的数据”。

Android是与iOS不同的异能。 iOS更像是一个“围墙花园”,在您的应用程序之外访问非常有限。

我发现最好的解决scheme是

 - (IBAction)onShare:(id)sender { NSString *textStr = self.textToShare.text; NSArray *items = @[textStr]; UIActivityViewController *activity = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil]; [self presentViewController:activity animated:YES completion:nil]; } 

它正是我所需要的。 它显示popup式视图,其中包含能够接收文本string的应用程序列表。 然后用户可以select其中的任何一个,控制器发送文本。