[iOS開發]ShareSDK


  可以自動在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

運行結果:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM