可以自动在App中创建分享功能,节省开发时间,提供开发效率,不必在去研究各个网站的Api
继续挖坑。。。。。T.T
看看表,马上凌晨1点。把今晚看的先分享上来一些,周末要考试,下周了继续写写在App中如何直接关注他人。
下载网站:
注册后,创建一个Appkey
在Xcode中初始化,4点注意
1.
导入ShareSDK文件夹
2.
导入框架:
SystemConfiguration.framework
QuartzCore.framework
MessageUI.framework
CoreTelephony.framework
libicucore.dylib
libstdc++.dylib
libz.1.2.5.dylib
libsqlite3.dylib
3.
在AppDelegate中导入头文件#import <ShareSDK/ShareSDK.h>
在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
中写[ShareSDKregisterApp:@"这里填写的是在ShareSDK网址上申请下的APP KEY"];
可以从Demo中复制-(void)initializePlat方法,
同时写入这两个方法
1 //授权返回时的数据处理,避免授权失败或者分享失败2 -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{3 return [ShareSDK handleOpenURL:url wxDelegate:nil];4 }5 6 -(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{7 return [ShareSDK handleOpenURL:url sourceApplication:sourceApplication annotation:annotation wxDelegate:nil];8 }
4.
注意修改-(void)initializePlat方法中的参数
1 [ShareSDK connectSinaWeiboWithAppKey:@"2334996814"//这里都是从open.weibo.com中申请下来的接口2 appSecret:@"a8cac4ac49f2278a9e2e8ff77c45c966"3 redirectUri:@"http://www.cnblogs.com"];
实例代码:
AppDelegate.h
1 #import2 #import "MainViewController.h"3 @interface AppDelegate : UIResponder 4 5 @property (strong, nonatomic) UIWindow *window;6 @end
AppDelegate.m
1 #import "AppDelegate.h" 2 #import3 4 #import "WeiboApi.h" 5 #import "WXApi.h" 6 #import "YXApi.h" 7 8 #import 9 #import 10 11 @implementation AppDelegate 12 13 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 14 { 15 [ShareSDK registerApp:@"1120db661270"]; 16 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 17 // Override point for customization after application launch. 18 self.window.backgroundColor = [UIColor whiteColor]; 19 MainViewController *main_vc = [[MainViewController alloc] init]; 20 [self initializePlat]; 21 self.window.rootViewController = main_vc; 22 23 [self.window makeKeyAndVisible]; 24 return YES; 25 } 26 27 //授权返回时的数据处理,避免授权失败或者分享失败 28 -(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{ 29 return [ShareSDK handleOpenURL:url wxDelegate:nil]; 30 } 31 32 -(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ 33 return [ShareSDK handleOpenURL:url sourceApplication:sourceApplication annotation:annotation wxDelegate:nil]; 34 } 35 36 - (void)initializePlat//根据自己需要选择 37 { 38 /** 39 连接新浪微博开放平台应用以使用相关功能,此应用需要引用SinaWeiboConnection.framework 40 http://open.weibo.com上注册新浪微博开放平台应用,并将相关信息填写到以下字段 41 **/ 42 [ShareSDK connectSinaWeiboWithAppKey:@"XXXXXXXXX" 43 appSecret:@"XXXXXXXXXXXX" 44 //XXXXX部分都是需要到open.weibo.com中为APP申请AppKey 45 redirectUri:@"http://www.cnblogs.com"]; 46 //网站是在高级信息中手动设置 47 /** 48 连接腾讯微博开放平台应用以使用相关功能,此应用需要引用TencentWeiboConnection.framework 49 http://dev.t.qq.com上注册腾讯微博开放平台应用,并将相关信息填写到以下字段 50 51 如果需要实现SSO,需要导入libWeiboSDK.a,并引入WBApi.h,将WBApi类型传入接口 52 **/ 53 [ShareSDK connectTencentWeiboWithAppKey:@"801307650" 54 appSecret:@"ae36f4ee3946e1cbb98d6965b0b2ff5c" 55 redirectUri:@"http://www.sharesdk.cn" 56 wbApiCls:[WeiboApi class]]; 57 58 //连接短信分享 59 [ShareSDK connectSMS]; 60 61 /** 62 连接QQ空间应用以使用相关功能,此应用需要引用QZoneConnection.framework 63 http://connect.qq.com/intro/login/上申请加入QQ登录,并将相关信息填写到以下字段 64 65 如果需要实现SSO,需要导入TencentOpenAPI.framework,并引入QQApiInterface.h和TencentOAuth.h,将QQApiInterface和TencentOAuth的类型传入接口 66 **/ 67 [ShareSDK connectQZoneWithAppKey:@"100371282" 68 appSecret:@"aed9b0303e3ed1e27bae87c33761161d" 69 qqApiInterfaceCls:[QQApiInterface class] 70 tencentOAuthCls:[TencentOAuth class]]; 71 72 /** 73 连接微信应用以使用相关功能,此应用需要引用WeChatConnection.framework和微信官方SDK 74 http://open.weixin.qq.com上注册应用,并将相关信息填写以下字段 75 **/ 76 [ShareSDK connectWeChatWithAppId:@"wx4868b35061f87885" wechatCls:[WXApi class]]; 77 78 /** 79 连接QQ应用以使用相关功能,此应用需要引用QQConnection.framework和QQApi.framework库 80 http://mobile.qq.com/api/上注册应用,并将相关信息填写到以下字段 81 **/ 82 //旧版中申请的AppId(如:QQxxxxxx类型),可以通过下面方法进行初始化 83 // [ShareSDK connectQQWithAppId:@"QQ075BCD15" qqApiCls:[QQApi class]]; 84 85 [ShareSDK connectQQWithQZoneAppKey:@"100371282" 86 qqApiInterfaceCls:[QQApiInterface class] 87 tencentOAuthCls:[TencentOAuth class]]; 88 89 /** 90 连接Facebook应用以使用相关功能,此应用需要引用FacebookConnection.framework 91 https://developers.facebook.com上注册应用,并将相关信息填写到以下字段 92 **/ 93 [ShareSDK connectFacebookWithAppKey:@"107704292745179" 94 appSecret:@"38053202e1a5fe26c80c753071f0b573"]; 95 96 /** 97 连接Twitter应用以使用相关功能,此应用需要引用TwitterConnection.framework 98 https://dev.twitter.com上注册应用,并将相关信息填写到以下字段 99 **/100 [ShareSDK connectTwitterWithConsumerKey:@"mnTGqtXk0TYMXYTN7qUxg"101 consumerSecret:@"ROkFqr8c3m1HXqS3rm3TJ0WkAJuwBOSaWhPbZ9Ojuc"102 redirectUri:@"http://www.sharesdk.cn"];103 104 /**105 连接Google+应用以使用相关功能,此应用需要引用GooglePlusConnection.framework、GooglePlus.framework和GoogleOpenSource.framework库106 https://code.google.com/apis/console上注册应用,并将相关信息填写到以下字段107 **/108 // [ShareSDK connectGooglePlusWithClientId:@"232554794995.apps.googleusercontent.com"109 // clientSecret:@"PEdFgtrMw97aCvf0joQj7EMk"110 // redirectUri:@"http://localhost"111 // signInCls:[GPPSignIn class]112 // shareCls:[GPPShare class]];113 // 114 // /**115 // 连接人人网应用以使用相关功能,此应用需要引用RenRenConnection.framework116 // http://dev.renren.com上注册人人网开放平台应用,并将相关信息填写到以下字段117 // **/118 // [ShareSDK connectRenRenWithAppId:@"226427"119 // appKey:@"fc5b8aed373c4c27a05b712acba0f8c3"120 // appSecret:@"f29df781abdd4f49beca5a2194676ca4"121 // renrenClientClass:[RennClient class]];122 123 /**124 连接开心网应用以使用相关功能,此应用需要引用KaiXinConnection.framework125 http://open.kaixin001.com上注册开心网开放平台应用,并将相关信息填写到以下字段126 **/127 [ShareSDK connectKaiXinWithAppKey:@"358443394194887cee81ff5890870c7c"128 appSecret:@"da32179d859c016169f66d90b6db2a23"129 redirectUri:@"http://www.sharesdk.cn/"];130 131 /**132 连接易信应用以使用相关功能,此应用需要引用YiXinConnection.framework133 http://open.yixin.im/上注册易信开放平台应用,并将相关信息填写到以下字段134 **/135 [ShareSDK connectYiXinWithAppId:@"yx0d9a9f9088ea44d78680f3274da1765f"136 yixinCls:[YXApi class]];137 138 //连接邮件139 [ShareSDK connectMail];140 141 //连接打印142 [ShareSDK connectAirPrint];143 144 //连接拷贝145 [ShareSDK connectCopy];146 147 /**148 连接搜狐微博应用以使用相关功能,此应用需要引用SohuWeiboConnection.framework149 http://open.t.sohu.com上注册搜狐微博开放平台应用,并将相关信息填写到以下字段150 **/151 [ShareSDK connectSohuWeiboWithConsumerKey:@"SAfmTG1blxZY3HztESWx"152 consumerSecret:@"yfTZf)!rVwh*3dqQuVJVsUL37!F)!yS9S!Orcsij"153 redirectUri:@"http://www.sharesdk.cn"];154 155 /**156 连接网易微博应用以使用相关功能,此应用需要引用T163WeiboConnection.framework157 http://open.t.163.com上注册网易微博开放平台应用,并将相关信息填写到以下字段158 **/159 [ShareSDK connect163WeiboWithAppKey:@"T5EI7BXe13vfyDuy"160 appSecret:@"gZxwyNOvjFYpxwwlnuizHRRtBRZ2lV1j"161 redirectUri:@"http://www.shareSDK.cn"];162 163 164 /**165 连接豆瓣应用以使用相关功能,此应用需要引用DouBanConnection.framework166 http://developers.douban.com上注册豆瓣社区应用,并将相关信息填写到以下字段167 **/168 [ShareSDK connectDoubanWithAppKey:@"02e2cbe5ca06de5908a863b15e149b0b"169 appSecret:@"9f1e7b4f71304f2f"170 redirectUri:@"http://www.sharesdk.cn"];171 172 /**173 连接印象笔记应用以使用相关功能,此应用需要引用EverNoteConnection.framework174 http://dev.yinxiang.com上注册应用,并将相关信息填写到以下字段175 **/176 [ShareSDK connectEvernoteWithType:SSEverNoteTypeSandbox177 consumerKey:@"sharesdk-7807"178 consumerSecret:@"d05bf86993836004"];179 180 /**181 连接LinkedIn应用以使用相关功能,此应用需要引用LinkedInConnection.framework库182 https://www.linkedin.com/secure/developer上注册应用,并将相关信息填写到以下字段183 **/184 [ShareSDK connectLinkedInWithApiKey:@"ejo5ibkye3vo"185 secretKey:@"cC7B2jpxITqPLZ5M"186 redirectUri:@"http://sharesdk.cn"];187 188 /**189 连接Pinterest应用以使用相关功能,此应用需要引用Pinterest.framework库190 http://developers.pinterest.com/上注册应用,并将相关信息填写到以下字段191 **/192 // [ShareSDK connectPinterestWithClientId:@"1432928"193 // pinterestCls:[Pinterest class]];194 195 /**196 连接Pocket应用以使用相关功能,此应用需要引用PocketConnection.framework197 http://getpocket.com/developer/上注册应用,并将相关信息填写到以下字段198 **/199 [ShareSDK connectPocketWithConsumerKey:@"11496-de7c8c5eb25b2c9fcdc2b627"200 redirectUri:@"pocketapp1234"];201 202 /**203 连接Instapaper应用以使用相关功能,此应用需要引用InstapaperConnection.framework204 http://www.instapaper.com/main/request_oauth_consumer_token上注册Instapaper应用,并将相关信息填写到以下字段205 **/206 [ShareSDK connectInstapaperWithAppKey:@"4rDJORmcOcSAZL1YpqGHRI605xUvrLbOhkJ07yO0wWrYrc61FA"207 appSecret:@"GNr1GespOQbrm8nvd7rlUsyRQsIo3boIbMguAl9gfpdL0aKZWe"];208 /**209 连接有道云笔记应用以使用相关功能,此应用需要引用YouDaoNoteConnection.framework210 http://note.youdao.com/open/developguide.html#app上注册应用,并将相关信息填写到以下字段211 **/212 [ShareSDK connectYouDaoNoteWithConsumerKey:@"dcde25dca105bcc36884ed4534dab940"213 consumerSecret:@"d98217b4020e7f1874263795f44838fe"214 redirectUri:@"http://www.sharesdk.cn/"];215 216 /**217 连接搜狐随身看应用以使用相关功能,此应用需要引用SohuConnection.framework218 https://open.sohu.com上注册应用,并将相关信息填写到以下字段219 **/220 [ShareSDK connectSohuKanWithAppKey:@"e16680a815134504b746c86e08a19db0"221 appSecret:@"b8eec53707c3976efc91614dd16ef81c"222 redirectUri:@"http://sharesdk.cn"];223 224 225 /**226 链接Flickr,此平台需要引用FlickrConnection.framework框架。227 http://www.flickr.com/services/apps/create/上注册应用,并将相关信息填写以下字段。228 **/229 [ShareSDK connectFlickrWithApiKey:@"33d833ee6b6fca49943363282dd313dd"230 apiSecret:@"3a2c5b42a8fbb8bb"];231 232 /**233 链接Tumblr,此平台需要引用TumblrConnection.framework框架234 http://www.tumblr.com/oauth/apps上注册应用,并将相关信息填写以下字段。235 **/236 [ShareSDK connectTumblrWithConsumerKey:@"2QUXqO9fcgGdtGG1FcvML6ZunIQzAEL8xY6hIaxdJnDti2DYwM"237 consumerSecret:@"3Rt0sPFj7u2g39mEVB3IBpOzKnM3JnTtxX2bao2JKk4VV1gtNo"238 callbackUrl:@"http://sharesdk.cn"];239 240 /**241 连接Dropbox应用以使用相关功能,此应用需要引用DropboxConnection.framework库242 https://www.dropbox.com/developers/apps上注册应用,并将相关信息填写以下字段。243 **/244 [ShareSDK connectDropboxWithAppKey:@"7janx53ilz11gbs"245 appSecret:@"c1hpx5fz6tzkm32"];246 247 /**248 连接Instagram应用以使用相关功能,此应用需要引用InstagramConnection.framework库249 http://instagram.com/developer/clients/register/上注册应用,并将相关信息填写以下字段250 **/251 [ShareSDK connectInstagramWithClientId:@"ff68e3216b4f4f989121aa1c2962d058"252 clientSecret:@"1b2e82f110264869b3505c3fe34e31a1"253 redirectUri:@"http://sharesdk.cn"];254 255 /**256 连接VKontakte应用以使用相关功能,此应用需要引用VKontakteConnection.framework库257 http://vk.com/editapp?act=create上注册应用,并将相关信息填写以下字段258 **/259 [ShareSDK connectVKontakteWithAppKey:@"3921561"260 secretKey:@"6Qf883ukLDyz4OBepYF1"];261 }262
ViewController.m
1 #import "MainViewController.h" 2 #import3 @interface MainViewController () 4 5 @end 6 7 @implementation MainViewController 8 9 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil10 {11 self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];12 if (self) {13 // Custom initialization14 }15 return self;16 }17 18 - (void)viewDidLoad19 {20 [super viewDidLoad];21 // Do any additional setup after loading the view from its nib.22 UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];23 btn.frame = CGRectMake(160, 300, 40, 40);24 [btn setTitle:@"分享" forState:UIControlStateNormal];25 [btn addTarget:self action:@selector(share:) forControlEvents:UIControlEventTouchUpInside];26 [self.view addSubview:btn];27 28 29 }30 31 -(void)share:(id)sender{32 /**33 * @brief 创建分享内容对象,根据以下每个字段适用平台说明来填充参数值34 *35 * @param content 分享内容(新浪、腾讯、网易、搜狐、豆瓣、人人、开心、有道云笔记、facebook、twitter、邮件、打印、短信、微信、QQ、拷贝)36 * @param defaultContent 默认分享内容(新浪、腾讯、网易、搜狐、豆瓣、人人、开心、有道云笔记、facebook、twitter、邮件、打印、短信、微信、QQ、拷贝)37 * @param image 分享图片(新浪、腾讯、网易、搜狐、豆瓣、人人、开心、facebook、twitter、邮件、打印、微信、QQ、拷贝)38 * @param title 标题(QQ空间、人人、微信、QQ)39 * @param url 链接(QQ空间、人人、instapaper、微信、QQ)40 * @param description 主体内容(人人)41 * @param mediaType 分享类型(QQ、微信)42 *43 * @return 分享内容对象44 */45 46 id content = [ShareSDK content:@"hello world"47 defaultContent:nil48 image:[ShareSDK imageWithPath:[[NSBundle mainBundle] pathForResource:@"明日香" ofType:@"jpg"]]49 title:@"hello"50 url:@"http://www.cnblogs.com/"51 description:@"description"52 mediaType:SSPublishContentMediaTypeText];53 54 55 /**56 * @brief 显示分享菜单57 *58 * @param container 用于显示分享界面的容器,如果只显示在iPhone客户端可以传入nil。如果需要在iPad上显示需要指定容器。59 * @param shareList 平台类型列表60 * @param content 分享内容61 * @param statusBarTips 状态栏提示标识:YES:显示; NO:隐藏62 * @param authOptions 授权选项,用于指定接口在需要授权时的一些属性(如:是否自动授权,授权视图样式等),默认可传入nil63 * @param shareOptions 分享选项,用于定义分享视图部分属性(如:标题、一键分享列表、功能按钮等),默认可传入nil64 * @param result 分享返回事件处理65 */66 67 //弹出菜单68 [ShareSDK showShareActionSheet:nil69 shareList:nil70 content:content71 statusBarTips:YES72 authOptions:nil73 shareOptions:nil74 result:^(ShareType type, SSResponseState state, id statusInfo, id error, BOOL end) {75 if (state == SSPublishContentStateSuccess) {76 NSLog(@"success");77 }else if (state == SSPublishContentStateFail){78 NSLog(@"fail");79 }80 }];81 }82 83 84 - (void)didReceiveMemoryWarning85 {86 [super didReceiveMemoryWarning];87 // Dispose of any resources that can be recreated.88 }89 90 @end
运行结果: