繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM