可以自動在App中創建分享功能,節省開發時間,提供開發效率,不必在去研究各個網站的Api
繼續挖坑。。。。。T.T
看看表,馬上凌晨1點。把今晚看的先分享上來一些,周末要考試,下周了繼續寫寫在App中如何直接關注他人。
下載網站:http://sharesdk.cn/
注冊后,創建一個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 #import <UIKit/UIKit.h> 2 #import "MainViewController.h" 3 @interface AppDelegate : UIResponder <UIApplicationDelegate> 4 5 @property (strong, nonatomic) UIWindow *window; 6 @end
AppDelegate.m
1 #import "AppDelegate.h" 2 #import <ShareSDK/ShareSDK.h> 3 4 #import "WeiboApi.h" 5 #import "WXApi.h" 6 #import "YXApi.h" 7 8 #import <TencentOpenAPI/TencentOAuth.h> 9 #import <TencentOpenAPI/QQApiInterface.h> 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.framework 116 // http://dev.renren.com上注冊人人網開放平台應用,並將相關信息填寫到以下字段 117 // **/ 118 // [ShareSDK connectRenRenWithAppId:@"226427" 119 // appKey:@"fc5b8aed373c4c27a05b712acba0f8c3" 120 // appSecret:@"f29df781abdd4f49beca5a2194676ca4" 121 // renrenClientClass:[RennClient class]]; 122 123 /** 124 連接開心網應用以使用相關功能,此應用需要引用KaiXinConnection.framework 125 http://open.kaixin001.com上注冊開心網開放平台應用,並將相關信息填寫到以下字段 126 **/ 127 [ShareSDK connectKaiXinWithAppKey:@"358443394194887cee81ff5890870c7c" 128 appSecret:@"da32179d859c016169f66d90b6db2a23" 129 redirectUri:@"http://www.sharesdk.cn/"]; 130 131 /** 132 連接易信應用以使用相關功能,此應用需要引用YiXinConnection.framework 133 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.framework 149 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.framework 157 http://open.t.163.com上注冊網易微博開放平台應用,並將相關信息填寫到以下字段 158 **/ 159 [ShareSDK connect163WeiboWithAppKey:@"T5EI7BXe13vfyDuy" 160 appSecret:@"gZxwyNOvjFYpxwwlnuizHRRtBRZ2lV1j" 161 redirectUri:@"http://www.shareSDK.cn"]; 162 163 164 /** 165 連接豆瓣應用以使用相關功能,此應用需要引用DouBanConnection.framework 166 http://developers.douban.com上注冊豆瓣社區應用,並將相關信息填寫到以下字段 167 **/ 168 [ShareSDK connectDoubanWithAppKey:@"02e2cbe5ca06de5908a863b15e149b0b" 169 appSecret:@"9f1e7b4f71304f2f" 170 redirectUri:@"http://www.sharesdk.cn"]; 171 172 /** 173 連接印象筆記應用以使用相關功能,此應用需要引用EverNoteConnection.framework 174 http://dev.yinxiang.com上注冊應用,並將相關信息填寫到以下字段 175 **/ 176 [ShareSDK connectEvernoteWithType:SSEverNoteTypeSandbox 177 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.framework 197 http://getpocket.com/developer/上注冊應用,並將相關信息填寫到以下字段 198 **/ 199 [ShareSDK connectPocketWithConsumerKey:@"11496-de7c8c5eb25b2c9fcdc2b627" 200 redirectUri:@"pocketapp1234"]; 201 202 /** 203 連接Instapaper應用以使用相關功能,此應用需要引用InstapaperConnection.framework 204 http://www.instapaper.com/main/request_oauth_consumer_token上注冊Instapaper應用,並將相關信息填寫到以下字段 205 **/ 206 [ShareSDK connectInstapaperWithAppKey:@"4rDJORmcOcSAZL1YpqGHRI605xUvrLbOhkJ07yO0wWrYrc61FA" 207 appSecret:@"GNr1GespOQbrm8nvd7rlUsyRQsIo3boIbMguAl9gfpdL0aKZWe"]; 208 /** 209 連接有道雲筆記應用以使用相關功能,此應用需要引用YouDaoNoteConnection.framework 210 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.framework 218 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 #import <ShareSDK/ShareSDK.h> 3 @interface MainViewController () 4 5 @end 6 7 @implementation MainViewController 8 9 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 10 { 11 self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 12 if (self) { 13 // Custom initialization 14 } 15 return self; 16 } 17 18 - (void)viewDidLoad 19 { 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 <ISSContent> content = [ShareSDK content:@"hello world" 47 defaultContent:nil 48 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 授權選項,用於指定接口在需要授權時的一些屬性(如:是否自動授權,授權視圖樣式等),默認可傳入nil 63 * @param shareOptions 分享選項,用於定義分享視圖部分屬性(如:標題、一鍵分享列表、功能按鈕等),默認可傳入nil 64 * @param result 分享返回事件處理 65 */ 66 67 //彈出菜單 68 [ShareSDK showShareActionSheet:nil 69 shareList:nil 70 content:content 71 statusBarTips:YES 72 authOptions:nil 73 shareOptions:nil 74 result:^(ShareType type, SSResponseState state, id<ISSPlatformShareInfo> statusInfo, id<ICMErrorInfo> 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)didReceiveMemoryWarning 85 { 86 [super didReceiveMemoryWarning]; 87 // Dispose of any resources that can be recreated. 88 } 89 90 @end
運行結果: