[英]ios: Let people share link/image/text TO my app
如何让我的应用程序显示在Safari,照片等的共享活动列表中? 我想让人们通过我的应用程序分享链接/图像或文本,就像在Facebook上一样。
Facebook / Twitter等在默认的UIActivityType
列表中可用,但Pinterest,Zomato等其他应用程序如何实现这一目标?
最简单的可能性是使用文件类型关联。 已经有很多教程,因为这个概念已经很成熟,所以我将在这里向您介绍主要的关键词。
首先要确定的是你想要支持的统一类型标识符(UTI) 。 以下是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
这是在iOS 8及更高版本(以及OS X 10.10及更高版本)中实现的新功能。 它被称为扩展。 扩展程序允许应用程序离开其Apple沙箱并访问操作系统的其他部分,包括通知中心和共享表。 Apple这样说:
从iOS 8.0和OS X v10.10开始,应用扩展程序允许您在应用程序之外扩展自定义功能和内容,并在用户使用其他应用程序或系统时将其提供给用户。 您创建应用程序扩展以启用特定任务; 用户获得扩展后,他们可以使用它在各种环境中执行该任务。 例如,如果您提供的扩展程序可以与您的社交分享网站共享,则用户可以使用它在网上冲浪时发布评论。 或者,如果您提供显示当前体育比分的分机,则用户可以将其放入通知中心,以便他们在打开今日视图时可以获得最新分数。 您甚至可以创建一个扩展,提供用户可以使用的自定义键盘来代替iOS系统键盘。
有几种不同类型的扩展,包括Apple Watch应用程序。 您可以在Apple文档中查看所有这些类型。
要开始构建扩展,以下是一些资源:
您需要在info.plist中使用UTImportedTypeDeclarations
这是一个很好的教程http://www.raywenderlich.com/1948/how-integrate-itunes-file-sharing-with-your-ios-app
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.