如何让我的应用出现在 Safari、照片等的共享事件列表中? 我想让人们像在 Facebook 上一样通过我的应用分享链接/图片或文本。
Facebook/Twitter 等在默认 UIActivityType
列表中可用,但 Pinterest、Zomato 等其他应用如何实现这一点?
最佳答案
最简单的方法是使用文件类型关联。那里已经有很多教程,因为这个概念已经很成熟了,所以我将在这里向您介绍主要关键字。
首先要确定的是Uniform Type Identifiers (UTI)你要支持。 Here是 Apple 当前可用的 UTI 的列表。
然后,在您的 Xcode 项目中打开目标,然后转到 Info 选项卡。在那里您会找到文档类型 条目。 打开它,然后点击加号以添加新的文档类型。指定名称和您要支持的 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
关于ios:让人们分享链接/图像/文本到我的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29144780/