生活随笔
收集整理的這篇文章主要介紹了
iOS开发之share第三方登录以及分享
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
(1)官方下載ShareSDK?iOS?2.8.8,地址:http://sharesdk.cn/
(2)根據(jù)實際情況,引入相關(guān)的庫,參考官方文檔。
(3)在項目的AppDelegate中一般情況下有三個操作,第一是注冊ShareSDK,第二是注冊各個平臺的賬號,第三是關(guān)于微信等應(yīng)用的回調(diào)處理。
?
[objc]?view plaincopy print?
??#import?"AppDelegate.h"??#import?"RootViewController.h"??#import?<ShareSDK/ShareSDK.h>??#import?"WeiboApi.h"??#import?<TencentOpenAPI/QQApiInterface.h>??#import?<TencentOpenAPI/TencentOAuth.h>??#import?"WXApi.h"??#import?<TencentOpenAPI/QQApiInterface.h>??#import?<TencentOpenAPI/TencentOAuth.h>????@implementation?AppDelegate??@synthesize?rootVC;????-?(BOOL)application:(UIApplication?*)application?didFinishLaunchingWithOptions:(NSDictionary?*)launchOptions?{??????self.window?=?[[UIWindow?alloc]?initWithFrame:[[UIScreen?mainScreen]?bounds]];??????if?(self.rootVC==nil)?{??????????self.rootVC?=?[[RootViewController?alloc]initWithNibName:@"RootViewController"?bundle:nil];??????}??????UINavigationController?*rootNav?=?[[UINavigationController?alloc]initWithRootViewController:self.rootVC];??????self.window.rootViewController?=?rootNav;??????self.window.backgroundColor?=?[UIColor?whiteColor];??????[self.window?makeKeyAndVisible];??????????????????<span?style="color:#ff0000;">[ShareSDK?registerApp:@"1a2e7ab5fb6c"];</span>???????????<span?style="color:#3366ff;">?????[ShareSDK?connectSinaWeiboWithAppKey:@"3201194191"?????????????????????????????????appSecret:@"0334252914651e8f76bad63337b3b78f"???????????????????????????????redirectUri:@"http://appgo.cn"];????????????????[ShareSDK?connectTencentWeiboWithAppKey:@"801307650"????????????????????????????????????appSecret:@"ae36f4ee3946e1cbb98d6965b0b2ff5c"??????????????????????????????????redirectUri:@"http://www.sharesdk.cn"?????????????????????????????????????wbApiCls:[WeiboApi?class]];????????????????[ShareSDK?connectQZoneWithAppKey:@"100371282"?????????????????????????????appSecret:@"aed9b0303e3ed1e27bae87c33761161d"?????????????????????qqApiInterfaceCls:[QQApiInterface?class]???????????????????????tencentOAuthCls:[TencentOAuth?class]];????????????????[ShareSDK?connectWeChatWithAppId:@"wx4868b35061f87885"?wechatCls:[WXApi?class]];????????????????[ShareSDK?connectQQWithQZoneAppKey:@"100371282"???????????????????????qqApiInterfaceCls:[QQApiInterface?class]?????????????????????????tencentOAuthCls:[TencentOAuth?class]];</span>????????????return?YES;??}??????-?(void)applicationWillResignActive:(UIApplication?*)application?{??????????}????-?(void)applicationDidEnterBackground:(UIApplication?*)application?{??????????}????-?(void)applicationWillEnterForeground:(UIApplication?*)application?{??????}????-?(void)applicationDidBecomeActive:(UIApplication?*)application?{??????}????-?(void)applicationWillTerminate:(UIApplication?*)application?{??????}??????<span?style="color:#ff6600;">#pragma?mark?-?WX回調(diào)????-?(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];??}????#pragma?mark?-?WXApiDelegate????-(void)?onReq:(BaseReq*)req{????????}????-(void)?onResp:(BaseResp*)resp{????????}??</span>??@end?? ?
?
(4)信息分享。
?
[objc]?view plaincopy print?
-(IBAction)share:(id)sender{??????NSString?*imagePath?=?[[NSBundle?mainBundle]?pathForResource:@"card"??ofType:@"png"];??????????id<ISSContent>?publishContent?=?[ShareSDK?content:@"分享內(nèi)容測試"?????????????????????????????????????????defaultContent:@"默認(rèn)分享內(nèi)容測試,沒內(nèi)容時顯示"??????????????????????????????????????????????????image:[ShareSDK?imageWithPath:imagePath]??????????????????????????????????????????????????title:@"pmmq"????????????????????????????????????????????????????url:@"http://www.sharesdk.cn"????????????????????????????????????????????description:@"這是一條測試信息"??????????????????????????????????????????????mediaType:SSPublishContentMediaTypeNews];??????[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(@"分享成功");??????????????????????????????????}??????????????????????????????????else?if?(state?==?SSResponseStateFail)??????????????????????????????????{??????????????????????????????????????NSLog(@"分享失敗");??????????????????????????????????}??????????????????????????????}];??}??
(5)登錄、登出、獲取授權(quán)信息、關(guān)注制定微博
?
[objc]?view plaincopy print?
??#import?"LoginViewController.h"??#import?<ShareSDK/ShareSDK.h>????@interface?LoginViewController?()????-(IBAction)loginWithSina:(id)sender;????-(IBAction)loginWithQQ:(id)sender;????-(IBAction)loginoutWithSina:(id)sender;????-(IBAction)loginoutWithQQ:(id)sender;????-(IBAction)guanzhuUs:(id)sender;????-(void)reloadStateWithType:(ShareType)type;????@end????@implementation?LoginViewController????-?(id)initWithNibName:(NSString?*)nibNameOrNil?bundle:(NSBundle?*)nibBundleOrNil?{??????self?=?[super?initWithNibName:nibNameOrNil?bundle:nibBundleOrNil];??????if?(self)?{??????}??????return?self;??}????-?(void)viewDidLoad?{??????[super?viewDidLoad];??}????-?(void)didReceiveMemoryWarning?{??????[super?didReceiveMemoryWarning];??}????-?(IBAction)loginWithSina:(id)sender?{??????[ShareSDK?getUserInfoWithType:ShareTypeSinaWeibo?authOptions:nil?result:^(BOOL?result,?id<ISSPlatformUser>?userInfo,?id<ICMErrorInfo>?error)?{??????????NSLog(@"%d",result);??????????if?(result)?{??????????????????????????????????????[self?reloadStateWithType:ShareTypeSinaWeibo];??????????}??????}];??}??????-(IBAction)loginWithQQ:(id)sender{??????[ShareSDK?getUserInfoWithType:ShareTypeQQSpace?authOptions:nil?result:^(BOOL?result,?id<ISSPlatformUser>?userInfo,?id<ICMErrorInfo>?error)?{??????????NSLog(@"%d",result);??????????if?(result)?{??????????????????????????????????????[self?reloadStateWithType:ShareTypeQQSpace];??????????}??????}];??}????-(IBAction)loginoutWithSina:(id)sender{??????[ShareSDK?cancelAuthWithType:ShareTypeSinaWeibo];??????[self?reloadStateWithType:ShareTypeSinaWeibo];??}????-(IBAction)loginoutWithQQ:(id)sender{??????[ShareSDK?cancelAuthWithType:ShareTypeQQSpace];??????[self?reloadStateWithType:ShareTypeQQSpace];??}????-(void)reloadStateWithType:(ShareType)type{??????????????id<ISSPlatformCredential>?credential?=?[ShareSDK?getCredentialWithType:type];??????UIAlertView?*alertView?=?[[UIAlertView?alloc]?initWithTitle:NSLocalizedString(@"TEXT_TIPS",?@"提示")??????????????????????????????????????????????????????????message:[NSString?stringWithFormat:???????????????????????????????????????????????????????????????????@"uid?=?%@\ntoken?=?%@\nsecret?=?%@\n?expired?=?%@\nextInfo?=?%@",???????????????????????????????????????????????????????????????????[credential?uid],???????????????????????????????????????????????????????????????????[credential?token],???????????????????????????????????????????????????????????????????[credential?secret],???????????????????????????????????????????????????????????????????[credential?expired],???????????????????????????????????????????????????????????????????[credential?extInfo]]?????????????????????????????????????????????????????????delegate:nil????????????????????????????????????????????????cancelButtonTitle:NSLocalizedString(@"TEXT_KNOW",?@"知道了")????????????????????????????????????????????????otherButtonTitles:nil];??????[alertView?show];??}????-(IBAction)guanzhuUs:(id)sender{??????[ShareSDK?followUserWithType:ShareTypeSinaWeibo????????????????????????????????????field:@"ShareSDK"???????????????????????????????????????fieldType:SSUserFieldTypeName?????????????????????????????authOptions:nil????????????????????????????????????????????viewDelegate:nil??????????????????????????????????????????????????result:^(SSResponseState?state,?id<ISSPlatformUser>?userInfo,?id<ICMErrorInfo>?error)?{????????????????????????????????if?(state?==?SSResponseStateSuccess)?{????????????????????????????????????NSLog(@"關(guān)注成功");????????????????????????????????}?else?if?(state?==?SSResponseStateFail)?{????????????????????????????????????NSLog(@"%@",?[NSString?stringWithFormat:@"關(guān)注失敗:%@",?error.errorDescription]);????????????????????????????????}????????????????????????????}];??}??????@end ? ?
?
?
?
?
DEMO下載地址:http://download.csdn.net/download/daleiwang/7734321
轉(zhuǎn)載于:https://www.cnblogs.com/lys-iOS-study/p/5693924.html
總結(jié)
以上是生活随笔為你收集整理的iOS开发之share第三方登录以及分享的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。