如何让我的应用程序显示在Safari,照片等的共享活动列表中? 我想让人们通过我的应用程序分享链接/图像或文本,就像在Facebook上一样。
Facebook / Twitter等在默认UIActivityType
列表中可用,但Pinterest,Zomato等其他应用程序如何实现这一目标?
答案 0 :(得分:4)
最简单的可能性是使用文件类型关联。已经有很多教程,因为这个概念已经很成熟,所以我将在这里向您介绍主要的关键词。
要确定的第一件事是您要支持的Uniform Type Identifiers (UTI)。 Here是Apple目前可用的UTI列表。
然后,在您的Xcode项目中打开目标,然后转到信息标签。在那里,您会找到文档类型条目。 打开它,然后点击加号以添加新的文档类型。指定一个名称和您想要支持的UTI(在本例中我选择了PDF):
请注意,您还需要提供其他文档属性。大多数教程都将(LSHandlerRank, Alternate)
作为键值对,但我没有找到任何理由。它似乎也适用于(foo, bar)
。
接下来,运行您的应用以使其在设备上注册。
如果您现在拥有PDF,请在邮件应用中说明附件,您的应用现在会显示在列表中:
最后,在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
的好教程