iOS中社交分享相关的API

现如今,Twitter、Facebook、微博等都陪伴我们度过每一天,社交网络工具已成为人与人之间主流的沟通工具,同时也是媒体平台和产品推广渠道。一个产品能否为更多人所知,一定程度上也为能否很好的利用社交网络所影响。比如我们做一款App,希望通过用户在微博分享,口口相传,那么就需要一些API上的支持。

现在无论是新浪微博,还是腾讯的微信等主流的社交媒体,都提供了开放平台和客户端SDK,在其中有着丰富的API支持。但实际上iOS本身也集成了很多社交的API,对于比较简单的需求场景,使用起来是非常方便的,这篇文章简要整理一下

0. 概览

iOS和社交工具的合作发展,是一个漫长的过程。

从iOS5.0开始,iOS系统开始集成Twitter,开发者可以使用Twitter.framework。

iOS6又开辟了新的API支持,添加了Social.framework,对社交媒体的支持不仅仅是Twitter,新增了Facebook和新浪微博。同时,配合着Social framework,还在UIKit中添加了UIActivityViewController和相关的类,社交分享已经成为iOS App很自然的一个组成部分。

iOS7中,进一步扩大了支持范围,增加分享到Flickr、Vimeo以及国内的腾讯微博。

iOS8则直接在新的App Extension机制中增加了Share一类。

1. UIActivityViewController

UIActivityViewController展现界面

UIActivityViewController会根据App中特定的内容和当前系统的支持的情况,“智能”判断可以做哪些操作,如果是文字文本、图片、URL,并且系统已经登录过社交网络账号,则可以分享内容到微博或者Facebook等。

最简单的方式就是通过

- (instancetype)initWithActivityItems:(NSArray *)activityItems applicationActivities:(NSArray *)applicationActivities

这个方法初始化UIActivityViewController这个类的对象,然后使用当前ViewCotroller对象将其present出来。

其中,activityItems中包含想要分享的内容,而applicationActivities则是一个UIActivity对象数组,代表要进行分享的的服务,通常传nil就可以了,系统会根据前一个参数来决定。

2. Social framework

假如在上面的UIActivityViewController使用的例子中,初始化的参数内容是“[NSURL URLWithString:@"http://www.molotang.com"]”,而且最终选择的是微博,则会弹出一个确认框,然后点击“发布”就分享到系统记录的微博账号上去了。

iOS中分享到微博

而这个过程中最终使用到的实际上就是Social Framework中的内容。

如果想直接使用新浪微博,可以通过Social framework中的SLComposeViewController。最简单的例子代码如下:

SLComposeViewController *socialController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeSinaWeibo];
[socialController addURL:  [NSURL URLWithString:@"http://www.molotang.com"]];
[self presentViewController:socialController animated:YES completion:nil];

如上代码中的self是一个UIViewController对象。

直接这样使用的一个好处是,如果系统当前没有记录登陆过的新浪微博账号,则会提示用户登陆,而这样的情况在使用UIActivityViewController的时候发生时,则直接没有微博的选项了。

3. 其它

  • UIActivityViewController展现的页面其实是很常见的,而且有时我们在某个应用里想要通过另外一个App的方式打开某个文档的时候,也见过这样的界面:

UIDocumentInteractionController

而这个实际上是UIDocumentInteractionController这个类支持的功能,这个早在iOS3的时候就支持了,也是App间共享或者说传递文档的一种方式。

  • 在iOS8中,一个新增的特性是App Extension,一个App发布的时候可以带有一个扩展插件,供系统其它App使用。而其中一个类型就是Share,通过这个功能,我们可以定制自己的分享服务供系统使用。详细可参考苹果文档:App Extension – Share

以上,是iOS系统自身集成的一些社交相关API。如果需要针对某个社交媒体,比如“来往”,那就要到其开放平台注册和接入专门的SDK了,如果使用很多社交网络分享,一个比较方便的方案是使用ShareSDK,除了集成各家SDK外,还做了其它一些功能,比如统计等。

相关文章:

此条目发表在 iOS, iOS开发基础 分类目录,贴了 , , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>