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

时间:2015-01-09 13:44:11

标签: ios objective-c

我的应用会生成某种文字信息。

用户按下按钮,如"分享"在我的应用程序中,然后弹出一个窗口,其中包含已安装的应用程序列表或只有可以接收字符串参数的应用程序。之后,用户选择例如" Mail"应用程序,然后使用新的电子邮件和我的应用程序中的给定文本打开它。或者用户选择Skype应用程序,然后使用给定文本打开它。

如何在iOS中实现这些方案?

PS:我已经在Android应用中看到了类似的行为(通过Intent其他内容)。

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

2 个答案:

答案 0 :(得分:2)

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

执行此操作的一种简单方法是调用以其他应用为目标的网址。

对于邮件,您可以调用mailto://网址,该网址包含所需字段(to,cc,bcc,subject或body)中的文本的电子邮件。

如果应用支持iOS文档模型,您可以将文档传递给它。

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

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

答案 1 :(得分:0)

我找到了最适合我的解决方案

- (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];
}

它完全符合我的需要。它显示弹出视图,其中包含能够接收文本字符串的应用程序列表。然后用户可以选择其中任何一个,控制器就会向其发送文本。