cocoapods 导入:
# 公共库(必须)
pod 'MOBFoundation'
# 主模块(必须)
pod 'ShareSDK2'
# UI模块(含所有UI样式,可选)
pod 'ShareSDK2/UI'
# iOS竖版默认分享UI(可选)
pod 'ShareSDK2/UI/Flat'
# iPad版默认分享视图(可选)
pod 'ShareSDK2/UI/iPadDefault'
# iPad版简单分享视图(可选)
pod 'ShareSDK2/UI/iPadSimple'
# iPhone版默认分享视图(可选)
pod 'ShareSDK2/UI/iPhoneDefault'
# iPhone版简单分享视图(可选)
pod 'ShareSDK2/UI/iPhoneSimple'
# iPhone版应用推荐视图(可选)
pod 'ShareSDK2/UI/iPhoneAppRecommend'
# 评论和赞模块(可选)
pod 'ShareSDK2/Comment'
# 分享&登录链接模块(含所有平台,可选)
pod 'ShareSDK2/Connection'
# 短信(可选)
pod 'ShareSDK2/Connection/SMS'
# 邮件(可选)
pod 'ShareSDK2/Connection/Mail'
# 拷贝(可选)
pod 'ShareSDK2/Connection/Copy'
# 打印(可选)
pod 'ShareSDK2/Connection/Print'
# 新浪微博(可选)
pod 'ShareSDK2/Connection/SinaWeibo'
# 微信(可选)
pod 'ShareSDK2/Connection/WeChat'
# 腾讯QQ(可选)
pod 'ShareSDK2/Connection/QQ'
# QQ空间(可选)
pod 'ShareSDK2/Connection/QZone'
# 腾讯微博(可选)
pod 'ShareSDK2/Connection/TencentWeibo'
# Google+(可选)
pod 'ShareSDK2/Connection/GooglePlus'
# 人人网(可选)
pod 'ShareSDK2/Connection/RenRen'
# 易信(可选)
pod 'ShareSDK2/Connection/YiXin'
# Facebook(可选)
pod 'ShareSDK2/Connection/Facebook'
# Dropbox(可选)
pod 'ShareSDK2/Connection/Dropbox'
# DouBan(可选)
pod 'ShareSDK2/Connection/DouBan'
# 印象笔记(可选)
pod 'ShareSDK2/Connection/EverNote'
# Flickr(可选)
pod 'ShareSDK2/Connection/Flickr'
# Instagram(可选)
pod 'ShareSDK2/Connection/Instagram'
# Instapaper(可选)
pod 'ShareSDK2/Connection/Instapaper'
# 开心网(可选)
pod 'ShareSDK2/Connection/KaiXin'
# Twitter(可选)
pod 'ShareSDK2/Connection/Twitter'
# Tumblr(可选)
pod 'ShareSDK2/Connection/Tumblr'
# WhatsApp(可选)
pod 'ShareSDK2/Connection/WhatsApp'
# VKontakte(可选)
pod 'ShareSDK2/Connection/VKontakte'
# KaKaoStory(可选)
pod 'ShareSDK2/Connection/KaKaoStory'
# KaKaoTalk(可选)
pod 'ShareSDK2/Connection/KaKaoTalk'
# Line(可选)
pod 'ShareSDK2/Connection/Line'
# LinkedIn(可选)
pod 'ShareSDK2/Connection/LinkedIn'
# Pocket(可选)
pod 'ShareSDK2/Connection/Pocket'
# 明道(可选)
pod 'ShareSDK2/Connection/MingDao'
# 有道云笔记(可选)
pod 'ShareSDK2/Connection/YouDaoNote'
# 支付宝(可选)
pod 'ShareSDK2/Connection/AliPaySocial'
安装 ShareSDK / UI 模块可以使用所有 UI 接口,安装 ShareSDK2 / 连接模块可以使用所有分享平台。但安装所有分享平台会使得应用程序变得非常大,因此我建议您不使用这种方法安装。开发者可以根据自己的需求安装指定的分享模块,这样可以让应用程序的体积保持较小。
示例:应用需要包含新浪微博、QQ、微信分享,并需要使用简单的分享视图,您只需要在 Podfile 中添加以下代码。
pod 'MOBFoundation'
pod 'ShareSDK2'
pod 'ShareSDK2/UI/Flat'
pod 'ShareSDK2/UI/iPadDefault'
pod 'ShareSDK2/Connection/SinaWeibo'
pod 'ShareSDK2/Connection/WeChat'
pod 'ShareSDK2/Connection/QQ'
手动导入:
2、添加必要的框架
必备框架:
SystemConfiguration.framework
QuartzCore.framework
CoreTelephony.framework
libicucore.dylib
libz.1.2.5.dylib
Security.framework
JavaScriptCore.framework
libstdc++.dylib
CoreText.framework
可选框架:
necessary for the SSO Login of Sina weibo
ImageIO.framework
AdSupport.framework
libsqlite3.dylib
necessary for the SSO Login of WeChat
libsqlite3.dylib
necessary for the SSO Login of QZone or QQ Friend share
libsqlite3.dylib
necessary for Mail or SMS
MessageUI.framework
necessary for Google+ platform
CoreMotion.framework
CoreLocation.framework
MediaPlayer.framework
AssetsLibrary.framework
添加框架的步骤
1、登录到http://reg.sharesdk.cn/进行注册成为Mob开发者,然后点击此处创建Mob应用,您将获得Appkey。
2、打开AppDelegate.m文件,导入.h文件
#import <ShareSDK/ShareSDK.h>
并将在-(BOOL)application: didFinishLaunchingWithOptions:方法中添加初始化代码
- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions
{
[ShareSDK registerApp:@"***"]; // *** is the AppKey that you just got
//……
return YES;
}
将需要平台的初始化代码添加到-(BOOL)application: didFinishLaunchingWithOptions:方法中
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[ShareSDK registerApp:@"***"]; //you just added it
//… …
//Initialize SinaWeibo Application
[ShareSDK connectSinaWeiboWithAppKey:@"3201194191"
appSecret:@"0334252914651e8f76bad63337b3b78f"
redirectUri:@"http://appgo.cn"];
//Initialize QZone Application
[ShareSDK connectQZoneWithAppKey:@"100371282"
appSecret:@"aed9b0303e3ed1e27bae87c33761161d"];
//Initialize Facebook Application
[ShareSDK connectFacebookWithAppKey:@"107704292745179"
appSecret:@"38053202e1a5fe26c80c753071f0b573"];
//Initialize Twitter Application
[ShareSDK connectTwitterWithConsumerKey:@"mnTGqtXk0TYMXYTN7qUxg"
consumerSecret:@"ROkFqr8c3m1HXqS3rm3TJ0WkAJuwBOSaWhPbZ9Ojuc"
redirectUri:@"http://www.sharesdk.cn"];
//… …
return YES;
}
PS:上述connect…方法的参数与社会平台相关。如果您没有平台的App,您应前往该平台创建一个新的平台App。
如果您使用Storyboard创建项目,则可以忽略此步骤,系统将自动设置rootViewController。
否则,您必须在-(BOOL)application: didFinishLaunchingWithOptions:方法中设置rootViewController,否则可能会引起一些错误。代码示例可能如下所示
- (BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions
{
//……
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
self.viewController = [[[UINavigationController alloc] init] autorelease];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
1、创建一个符合ISSContent协议的对象。具体使用方法请参考ShareSDK框架中的ShareSDK.h或在ShareSDKDemo中查看。
2、要显示分享内容视图,需要调用showShareActionSheet…方法。
3、分享内容事件通常在ViewDidAppear事件之后发生,或者响应某些动作(如按钮点击)。如果您真的想点击按钮并显示分享内容视图,则可以在buttonPressed方法中添加以下代码。
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"ShareSDK" ofType:@"jpg"]; //make sure you actually have the picture in your project
//Create a share content object
id<ISSContent> publishContent = [ShareSDK content:@"Share Content"
defaultContent:@" The default share content. No content displayed" image:[ShareSDK imageWithPath:imagePath]
title:@"ShareSDK"
url:@"http://www.sharesdk.cn"
description:@"This is a test message"
mediaType:SSPublishContentMediaTypeNews];
//show share content view
[ShareSDK showShareActionSheet:nil
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)
{
NSLog(@"Share Success!");
}
else if (state == SSResponseStateFail)
{
NSLog(@"Share Fail,Error code:%d,Error description:%@", [error errorCode], [error errorDescription]);
}
}];
恭喜您!您成功了,结果可能如下截图所示。
1、如果您需要在iPad上使用ShareSDK,您需要使用ShareSDK类的+container方法创建一个符合ISSContainer协议的对象,并调用setIPadContainer系列方法设置iPad容器。
2、通常,我们推荐您使用ViewController的子视图作为“锚点”来作为容器。它可以是一个按钮、自定义视图等。只有以这种方式,分享视图和授权视图才能正确显示。
3、调用showShareActionSheet…方法。注意,上述容器对象应该是参数之一。以下是一个示例
//1,Create a container object
id<ISSContainer> container = [ShareSDK container];
//2,set the iPad container(in this example sender is a button)
[container setIPadContainerWithView:sender
arrowDirect:UIPopoverArrowDirectionUp];
//3,Pop-up the share menu
[ShareSDK showShareActionSheet:container
shareList:nil
content:publishContent
statusBarTips:YES
authOptions:authOptions
shareOptions:shareOptions
result:^(ShareType type, SSResponseState state, id<ISSPlatformShareInfo> statusInfo, id<ICMErrorInfo> error, BOOL end)
{
if (state == SSResponseStateSuccess)
{
NSLog(@"Share Success!");
}
else if (state == SSResponseStateFail)
{
NSLog(@"Share Fail,Error code:%d,Error description:%@", [error errorCode], [error errorDescription]);
}
}];
#import <ShareSDK/ShareSDK.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//[ShareSDK registerApp:@"***"]; // *** is the Appkey of Mob app
// Here is the way of using The Sever Hosting mode
//the parameter YES means use The Sever Hosting mode
[ShareSDK registerApp:@"***" useAppTrusteeship:YES];
//……
return YES;
}
[ShareSDK waitAppSettingComplete:^{
// Calls the ShareSDK API
}];
1、登录到微信开放平台(http://open.weixin.qq.com/)成为微信开发者,并创建应用以获取应用ID和AppSecret。
2、返回您的项目,选择-Info.plist文件(-代表您的项目名称)。添加一个微信URL Scheme键,其值是微信AppID(例如:wx4868b35061f87885)。下面是示例:
#import "WXApi.h"
检查是否已添加handleOpenURL方法,如果没有,则在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];
}
有两种方法可以共享内容到微信,但如果您想使用微信账号进行授权并获取用户信息,则需要使用带有appSecret参数的方法。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//...
//Initialize WeChat Application
//The parameter “wx6dd7a9b94f3dd72a” is the AppID of WeChat App
//[ShareSDK connectWeChatWithAppId:@"wx6dd7a9b94f3dd72a"
// wechatCls:[WXApi class]];
//you can use WeChat account to authorize using this method
[ShareSDK connectWeChatWithAppId:@"wx4868b35061f87885"
appSecret:@"64020361b8ec4c99936c0e3999a9f249"
wechatCls:[WXApi class]];
//...
}
在此模式下,无需通过代码初始化应用程序配置。由于ShareSDK依赖于微信SDK进行分享,所以仍需要在application:didFinishLaunchingWithOptions:方法中添加一行代码以导入微信SDK类。以下是示例
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//...
// Add the WeChat SDK if your project or ShareSDK still don’s have one
[ShareSDK importWeChatClass:[WXApi class] ];
//...
}
1、登录到QQ开放平台(http://open.qq.com/)to成为开发者并创建应用以获取应用的AppID。
2、返回您的项目,选择-Info.plist文件(-代表您的项目名称)。为键添加一个URL Scheme,其值的格式是:"QQ" + AppID的十六进制数(如果十六进制数的长度小于8,则需要用零填充以确保长度为8)。以下是示例,如果您的AppID的十六进制数是5FB8B52,则URL Scheme的最终值是QQ05FB8B52。
#import <TencentOpenAPI/QQApiInterface.h>
#import <TencentOpenAPI/TencentOAuth.h>
检查是否已添加handleOpenURL方法,如果没有,则在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];
}
在-(BOOL)application: didFinishLaunchingWithOptions:方法中添加代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//...
//Initialize QQ Platform
//The parameter “100371282” is the AppID of QQ App
[ShareSDK connectQQWithQZoneAppKey:@"100371282"
qqApiInterfaceCls:[QQApiInterface class]
tencentOAuthCls:[TencentOAuth class] ];
//...
}
在此模式下,无需通过代码初始化应用程序配置。由于ShareSDK依赖于QQ SDK进行分享,所以仍需要在application:didFinishLaunchingWithOptions:方法中添加一行代码以导入QQ SDK类。以下是示例
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//...
// Add the QQ SDK if your project or ShareSDK still don’s have one
[ShareSDK importQQClass:[QQApiInterface class]
tencentOAuthCls:[TencentOAuth class] ];
//...
}
1、登录到Google+开发者平台成为开发者(https://code.google.com/apis/console/)并创建应用以获取应用的ClientID、ClientSecret、redirectUri等。
2、返回您的项目,将“-ObjC”添加到其他链接器标志。以下是步骤
#import <GoogleOpenSource/GoogleOpenSource.h>
#import <GooglePlus/GooglePlus.h>
检查是否已添加handleOpenURL方法,如果没有,则在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];
}
在-(BOOL)application: didFinishLaunchingWithOptions:方法中添加代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//...
//Initialize Google+ Platform
//the Google+ app’s ClientID、ClientSecret、redirectUri
[ShareSDK connectGooglePlusWithClientId: @"232554794995.apps.googleusercontent.com"
clientSecret:@"PEdFgtrMw97aCvf0joQj7EMk" redirectUri:@"https://" signInCls:[GPPSignIn class]
shareCls:[GPPShare class] ];
//...
}
在此模式下,无需通过代码初始化应用程序配置。因为ShareSDK依赖于Google+ SDK来分享,所以您仍然需要在 - application: didFinishLaunchingWithOptions: 方法中添加一行代码,以导入Google+ SDK类。以下是一个示例
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//...
// Add the Google+ SDK if your project or ShareSDK still don’s have one
[ShareSDK importGooglePlusClass:[GPPSignIn class]
shareClass:[GPPShare class] ];
//...
}
1、登录Pinterest开发者平台(http://developers.pinterest.com/)成为开发者,并创建一个应用以获得应用的ClientID。
2、返回您的项目,选择-Info.plist(-表示项目名称)文件。添加一个WeChat URL Scheme键,其值为pin + ClientID(例如:pin1432928)。以下是一个示例
#import <Pinterest/Pinterest.h>
检查是否已添加handleOpenURL方法,如果没有,则在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];
}
在-(BOOL)application: didFinishLaunchingWithOptions:方法中添加代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//...
//Initialize Pinterest
[ShareSDK connectPinterestWithClientId:@"1432928" //This parameter is the application ClientID
pinterestCls:[Pinterest class] ];
//...
}
在此模式下,无需通过代码初始化应用程序配置。因为ShareSDK依赖于Pinterest SDK来分享,所以您仍然需要在 - application: didFinishLaunchingWithOptions: 方法中添加一行代码,以导入Pinterest SDK类。以下是一个示例
[ShareSDK importPinterestClass:[Pinterest class] ];
1、登录易信开放平台(http://open.yixin.im/)成为易信开发者,并创建一个应用以获得应用的AppID。
2、返回您的项目,选择-Info.plist(-代表项目名称)文件。添加一个易信URL Scheme键,其值为易信AppID(例如:yx0d9a9f9088ea44d78680f3274da1765f)。以下是一个示例
#import "YXApi.h"
检查是否已添加handleOpenURL方法,如果没有,则在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];
}
在-(BOOL)application: didFinishLaunchingWithOptions:方法中添加代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//...
//Initialize YiXin Platform
//The parameter “yx0d9a9f9088ea44d78680f3274da1765f” is the AppID
[ShareSDK connectYiXinWithAppId: @"yx0d9a9f9088ea44d78680f3274da1765f"
yixinCls:[YXApi class] ];
//...
}
在此模式下,无需通过代码初始化应用程序配置。因为ShareSDK依赖于易信SDK来分享,所以您仍然需要在 - application: didFinishLaunchingWithOptions: 方法中添加一行代码,以导入易信SDK类。以下是一个示例
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//...
// Add the YiXin SDK if your project or ShareSDK still don’s have one
[ShareSDK importYiXinClass:[YXApi class] ];
//...
}