如何将文本传递给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其中的任何一个,控制器发送文本。