iOS中社会化分享总共分为三种:
1、使用系统自带的,但系统自带只可分享至短信、邮件、新浪微博、腾讯微博,但它不需要第三方库,也不需要申请App Key。但此种方式具有比较简单、页面简单,并且不能自定制的缺点;
2、自行上某某开放平台自行申请App Key,下载SDK,按着官方文档来写,比如要分享到微信朋友圈可上微信开放平台申请App Key下载SDK,但此种方式不太方便,如果一个项目中需要集成多种社会化分享那需要自己一个一个去集成比较麻烦。所以这里主要讲解下面的第三种社会化分享。
3、ShareSDK:ShareSDK是一个已经集成了很多平台,他能更方便的管理其他第三方平台,但ShareSDK需要注册一个独立的App Key。剩下的按文档做就ok,文档所给出的已经很详细;下面介绍一下ShareSDK的具体使用;
ShareSDK社会化分享的具体使用:
ShareSDK官方地址:http://www.mob.com
步骤:
第一步:进入官网
首先进入ShareSDK官网:http://www.mob.com
第二步:登陆
登陆ShareSDK官网点击右上角头像中的“进入后台”
第三步:创建应用
点击ShareSDK图像中的“立即使用”,创建一个应用
第四步:下载ShareSDK
点击“下载ShareSDK”进行下载
第五步:将ShareSDK导入工程
首先将下载好的ShareSDK进行解压,然后放入工程目录下,在工程中使用Add File To “....”将ShareSDK导入工程中
第六步:添加依赖库文件
选中工程,在Build Phases中展开Link Binary With Libraries在里面添加一下依赖库:
SystemConfiguration.framework
QuartzCore.framework
CoreTelephony.framework
libicucore.dylib
libz.1.2.5.dylib
Security.framework
第七步:根据社交平台需要添加的依赖库,还是在第六步的选项卡中添加:
Social.framework 腾讯微博
Accounts.framework 腾讯微博
MessageUI.framework 短信和邮件
libstdc++.dylib QQ好友和QQ空间SSO授权需要(新注册的腾讯开放平台帐号只支持SSO授权权限)
libsqlite3.dylib QQ好友和QQ空间SSO授权需要(新注册的腾讯开放平台帐号只支持SSO授权权限)
CoreMotion.framework Google+
CoreLocation.framework Google+
MediaPlayer.framework Google+
CoreText.framework Google+
AssetsLibrary.framework Google+
AddressBook.framework Google+
第八步:初始化ShareSDK与和社交平台
1、在AppDelegate.m文件中添加ShareSDK头文件:
#import <ShareSDK/ShareSDK.h>
2、设置rootViewController,必须设置
3、在AppDelegate.m文件中导入平台的SDK头文件,根据需要进行导入
#import "WXApi.h"
#import "WeiboApi.h"
#import "WeiboSDK.h"
#import <TencentOpenAPI/QQApi.h>
#import <TencentOpenAPI/QQApiInterface.h>
#import <QZoneConnection/ISSQZoneApp.h>
#import <FacebookConnection/ISSFacebookApp.h>
#import <TencentOpenAPI/TencentOAuth.h>
#import <RennSDK/RennSDK.h>
#import <GoogleOpenSource/GoogleOpenSource.h>
#import <GooglePlus/GooglePlus.h>
#import <Pinterest/Pinterest.h>
#import "YXApi.h"
4、初始化ShareSDK,字符串“ce33b0737ca2”是你申请ShareSDK时得到的App Key,进入后台即可看见,在didFinishLaunchingWithOptions中进行
[ShareSDK registerAPP:@"ce33b0737ca2"];
5、初始化社交平台(这里以新浪微博为例),在didFinishLaunchingWithOptions中进行:
/**
http://open.weibo.com上注册新浪微博开放平台应用,并将相关信息填写到一下字段
其它应用的App Key等相关信息百度搜索某某开放平台进行申请即可
*/
[ShareSDK connectSinaWeiboWithAppKey:@"568898243" appSecret:@"38a4f8204cc784f81f9f0daaf31e02e3" redirectUri:@"http://www.sharesdk.cn"];
第九步:设置URL Scheme
1.需要依赖客户端分享或者要支持SSO授权(可以理解成跳到客户端授权)的平台都需要配置平台的URL Scheme(应用分享到社交平台后通过识别URL Scheme返回应用)。具体配置URL Scheme请参考iOS配置SSO授权
(http://wiki.mob.com/%E9%85%8D%E7%BD%AEsso%E6%8E%88%E6%9D%83-2/)。
2.需要在AppDelegate.m中添加处理打开链接的方法
- (BOOL)application:(UIApplication *)application
handleOpenURL:(NSURL *)url
{
return
[ShareSDK handleOpenURL:url
wxDelegate:self];
}
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
{
return
[ShareSDK handleOpenURL:url
sourceApplication:sourceApplication
annotation:annotation
wxDelegate:self];
}
第十步:构造分享内容并分享
1、进入需要分享的Controller中,在该类中导入ShareSDK:#import <ShareSDK/ShareSDK.h>
2、进行分享
//触发分享的事件
- (IBAction)ShareEventClicked:(id)sender
{
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@
"ShareSDK"
ofType:@
"jpg"
];
//1、构造分享内容
id<ISSContent> publishContent = [ShareSDK content:@
"要分享的内容"
defaultContent:@
"默认内容"
image:[ShareSDK imageWithPath:imagePath]
title:@
"ShareSDK"
description:@
"这是一条演示信息"
mediaType:SSPublishContentMediaTypeNews];
//1+创建弹出菜单容器(iPad必要)
id<ISSContainer> container = [ShareSDK container];
[container setIPadContainerWithView:sender arrowDirect:UIPopoverArrowDirectionUp];
//2、弹出分享菜单
[ShareSDK showShareActionSheet:container
shareList:nil
content:publishContent
statusBarTips:YES
authOptions:nil
shareOptions:nil
result:^(ShareType type, SSResponseState state, id<ISSPlatformShareInfo> statusInfo, id<ICMErrorInfo> error, BOOL end) {
//可以根据回调提示用户。
if
(state == SSResponseStateSuccess)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@
"分享成功"
message:nil
delegate:self
cancelButtonTitle:@
"OK"
otherButtonTitles:nil, nil];
[alert show];
}
else
if
(state == SSResponseStateFail)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@
"分享失败"
message:[NSString stringWithFormat:@
"失败描述:%@"
,[error errorDescription]]
delegate:self
cancelButtonTitle:@
"OK"
otherButtonTitles:nil, nil];
[alert show];
}
}];
}
这就是ShareSDK进行第三方分享的完整流程
注:若有漏写不清楚的地方大家可以参考官方文档:http://dashboard.mob.com/ShareSDK/#/quickstarts/ios