[iOS开发]ShareSDK

来源:互联网 发布:淘宝上有服装批发吗 编辑:程序博客网 时间:2024/05/17 21:06

  可以自动在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.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 #import <ShareSDK/ShareSDK.h> 3 @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 <ISSContent> 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<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)didReceiveMemoryWarning85 {86     [super didReceiveMemoryWarning];87     // Dispose of any resources that can be recreated.88 }89 90 @end
复制代码

运行结果:

 

0 0
原创粉丝点击