ios:让人们分享链接/图片/文字到我的应用程序

时间:2015-03-19 12:36:35

标签: ios uiactivity

如何让我的应用程序显示在Safari,照片等的共享活动列表中? 我想让人们通过我的应用程序分享链接/图像或文本,就像在Facebook上一样。

Facebook / Twitter等在默认UIActivityType列表中可用,但Pinterest,Zomato等其他应用程序如何实现这一目标?

3 个答案:

答案 0 :(得分:4)

最简单的可能性是使用文件类型关联。已经有很多教程,因为这个概念已经很成熟,所以我将在这里向您介绍主要的关键词。

要确定的第一件事是您要支持的Uniform Type Identifiers (UTI)Here是Apple目前可用的UTI列表。

然后,在您的Xcode项目中打开目标,然后转到信息标签。在那里,您会找到文档类型条目。 打开它,然后点击加号以添加新的文档类型。指定一个名称和您想要支持的UTI(在本例中我选择了PDF):

enter image description here

请注意,您还需要提供其他文档属性。大多数教程都将(LSHandlerRank, Alternate)作为键值对,但我没有找到任何理由。它似乎也适用于(foo, bar)

接下来,运行您的应用以使其在设备上注册。

如果您现在拥有PDF,请在邮件应用中说明附件,您的应用现在会显示在列表中:

enter image description here

最后,在AppDelegate中,您需要实现以下方法:

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    NSLog(@"App opened with url %@", url);
    return YES;
}
只要您的应用收到PDF,就会调用

。这些文件将进入一个名为“收件箱”的特殊文件夹,该URL将告诉您已提供的文件的名称。

修改

这是我iPhone的示例控制台输出:

2015-03-19 15:27:32.841 so 29147257[3951:1529409] App opened with url file:///private/var/mobile/Containers/Data/Application/A5723926-F869-49C0-A2AF-756795932B81/Documents/Inbox/first-1.pdf

答案 1 :(得分:1)

这是在iOS 8及更高版本(以及OS X 10.10及更高版本)中实现的新功能。它被称为扩展。扩展程序允许应用程序离开其Apple沙箱并访问操作系统的其他部分,包括通知中心和共享表。 Apple这样说:

  

从iOS 8.0和OS X v10.10开始,您可以通过应用扩展程序进行扩展   超出您应用的自定义功能和内容,并使其可用   用户在使用其他应用或系统时。你创建了一个   应用程序扩展以启用特定任务;用户拿到你的   扩展,他们可以用它来执行各种各样的任务   上下文。例如,如果您提供启用的扩展名   分享到您的社交分享网站,用户可以使用它来发布   网上冲浪时的评论。或者,如果您提供扩展名   显示当前的体育比分,用户可以将其放入通知中   中心,以便他们在打开今天时获得最新分数   视图。您甚至可以创建一个提供自定义键盘的扩展程序   用户可以使用它代替iOS系统键盘。

有几种不同类型的扩展程序,包括Apple Watch应用程序。您可以在Apple文档中查看所有这些类型。

要开始构建扩展,以下是一些资源:

答案 2 :(得分:0)

您需要在info.plist

中使用UTImportedTypeDeclarations

这个http://www.raywenderlich.com/1948/how-integrate-itunes-file-sharing-with-your-ios-app

的好教程