完整的iOS新浪微博分享功能開發_IOS

來源:互聯網
上載者:User

本文執行個體為大家分享了Android九宮格圖片展示的具體代碼,供大家參考,具體內容如下

做新浪分享 需先去http://open.weibo.com/apps註冊開發人員app 很簡單!

第1步


第2步

3

設定你的應用的資訊


找到自己的appkey


還需要設定自己的kAppRedirectURL測試可以隨便寫個!


開發部分在下面ios新浪微博分享(2)這部分:

開發需要下載官方的sdkhttp://open.weibo.com/wiki/SDK#iOS_SDK


本人下載的版本


建立一個viewcontrroler==WeiBoViewController

效果圖


h檔案

#import#import "SinaWeb/SinaWeibo/SinaWeibo.h"#import "SinaWeb/SinaWeibo/SinaWeiboRequest.h"@interface WeiBoViewController : UIViewController<</span>SinaWeiboDelegate,SinaWeiboRequestDelegate>{ UIButton *_shareButton;  UITextView *_textView;  UIView *_shareView;  UIActivityIndicatorView *_indicator;}@property (strong, nonatomic) UIButton *shareButton;@property (strong, nonatomic) UITextView *textView;@property (strong, nonatomic) UIView *shareView;@property (strong, nonatomic) UIActivityIndicatorView *indicator;@property (readonly, nonatomic) SinaWeibo *sinaWeibo;- (void) addButton;- (void) addShareView;- (void) share:(UIButton*) sender;- (void) removeShare:(UIButton*) sender;- (void) sendShare:(UIButton*) sender;- (void) exitShare:(UIButton*) sender;@end

m檔案

#import "WeiBoViewController.h"#define kAppKey    @"appkey"#define kAppSecret   @"appSecret"#define kAppRedirectURL  @"重新導向url"@interface WeiBoViewController ()@end@implementation WeiBoViewController@synthesize shareButton = _shareButton;@synthesize textView = _textView;@synthesize shareView = _shareView;@synthesize indicator = _indicator;@synthesize sinaWeibo = _sinaWeibo;- (SinaWeibo*)sinaWeibo{ _sinaWeibo.delegate=self; return _sinaWeibo;}- (void)viewDidLoad{ [super viewDidLoad];  _indicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; [_indicator setFrame:CGRectMake(0, 0, 50, 50)]; _indicator.center = self.view.center; [self.view addSubview:_indicator];  _sinaWeibo = [[SinaWeibo alloc] initWithAppKey:kAppKey appSecret:kAppSecret appRedirectURI:kAppRedirectURL andDelegate:self];  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];  NSDictionary *sinaWeiboInfo = [defaults objectForKey:@"SinaWeiboAuthData"];  if ([sinaWeiboInfo objectForKey:@"AccessTokenKey"] && [sinaWeiboInfo objectForKey:@"ExpirationDateKey"] && [sinaWeiboInfo objectForKey:@"UserIDKey"]) {  _sinaWeibo.accessToken = [sinaWeiboInfo objectForKey:@"AccessTokenKey"];    _sinaWeibo.expirationDate = [sinaWeiboInfo objectForKey:@"ExpirationDateKey"];    _sinaWeibo.userID = [sinaWeiboInfo objectForKey:@"UserIDKey"]; }  [self addButton];}- (void) addButton{ _shareButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; UIImage*butimg=[UIImage imageNamed:@"button_background@2x.png"]; UIImage*logobutimg=[UIImage imageNamed:@"logo@2x.png"]; [self.shareButton setFrame:CGRectMake(10, 10, butimg.size.width, butimg.size.height)]; [self.shareButton setBackgroundImage:butimg forState:UIControlStateNormal]; [self.shareButton setImage:logobutimg forState:UIControlStateNormal]; [self.shareButton addTarget:self action:@selector(share:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:self.shareButton];}//分享按鈕回應程式法- (void) share:(UIButton*) sender{ SinaWeibo *sinaWeibo = [self sinaWeibo]; BOOL authValid = sinaWeibo.isAuthValid;  if (!authValid) {  [sinaWeibo logIn]; } else {  NSString *postStatusText = @"[哈哈]";    SinaWeibo *sinaWeibo = [self sinaWeibo];  //只發送漢字//  [sinaWeibo requestWithURL:@"statuses/update.json" params:[NSMutableDictionary dictionaryWithObjectsAndKeys:postStatusText,@"status", nil] httpMethod:@"POST" delegate:self];//圖片和串連 和文字  [sinaWeibo requestWithURL:@"statuses/upload.json"       params:[NSMutableDictionary dictionaryWithObjectsAndKeys:         @"要發布的微博常值內容,超連結http://baidu.com", @"status",         [UIImage imageNamed:@"Icon.png"], @"pic", nil]      httpMethod:@"POST"       delegate:self];    [_shareView removeFromSuperview];    [self.indicator startAnimating]; } }//登陸成功後回調方法- (void) sinaweiboDidLogIn:(SinaWeibo *)sinaweibo{ NSLog(@"%@--%@--%@--%@",sinaweibo.accessToken,sinaweibo.expirationDate, sinaweibo.userID,sinaweibo.refreshToken); NSDictionary *authData = [NSDictionary dictionaryWithObjectsAndKeys:        sinaweibo.accessToken, @"AccessTokenKey",        sinaweibo.expirationDate, @"ExpirationDateKey",        sinaweibo.userID, @"UserIDKey",        sinaweibo.refreshToken, @"refresh_token", nil]; [[NSUserDefaults standardUserDefaults] setObject:authData forKey:@"SinaWeiboAuthData"]; [[NSUserDefaults standardUserDefaults] synchronize];//可以在此選在授權成功後直接發送}//取消按鈕回調方法- (void) removeShare:(UIButton*) sender{ [_shareView removeFromSuperview];}//發送按鈕回調方法- (void) sendShare:(UIButton*) sender{ NSString *postStatusText = self.textView.text;  SinaWeibo *sinaWeibo = [self sinaWeibo];  [sinaWeibo requestWithURL:@"statuses/updates.json" params:[NSMutableDictionary dictionaryWithObjectsAndKeys:postStatusText,@"status", nil] httpMethod:@"POST" delegate:self];  [_shareView removeFromSuperview];  [self.indicator startAnimating];}//退出登陸回調方法- (void) exitShare:(UIButton*) sender{ SinaWeibo *sinaWeibo = [self sinaWeibo];  [sinaWeibo logOut];  [_shareView removeFromSuperview];  NSLog(@"退出登陸");}//請求完成回調該方法- (void)request:(SinaWeiboRequest *)request didFinishLoadingWithResult:(id)result{ [self.indicator stopAnimating];  UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"發送成功" message:@"提示" delegate:self cancelButtonTitle:@"確定" otherButtonTitles: nil]; [alert show]; [alert release]; NSLog(@"發送成功");}//請求失敗回調該方法- (void)request:(SinaWeiboRequest *)request didFailWithError:(NSError *)error{ [self.indicator stopAnimating];  UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"發送失敗,請檢測網路連結" message:@"提示" delegate:self cancelButtonTitle:@"確定" otherButtonTitles: nil]; [alert show]; [alert release]; NSLog(@"發送失敗");}- (void)viewDidUnload{ [super viewDidUnload]; // Release any retained subviews of the main view.}- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);}@end

源碼下載:http://xiazai.jb51.net/201611/yuanma/SinaWeiboShare(jb51.net).rar

個人資訊獲得

@interface UserInfoViewController : UIViewController<SinaWeiboRequestDelegate>//實現請求代理BOOL authValid = self.sina.isAuthValid;//判斷是否授權了 if (authValid){  [self.sina requestWithURL:@"users/show.json" params:[NSMutableDictionarydictionaryWithObject:self.sina.userID forKey:@"uid"] httpMethod:@"GET" delegate:self]; }//請求失敗回調方法- (void)request:(SinaWeiboRequest *)request didFailWithError:(NSError *)error{ if ([request.url hasSuffix:@"users/show.json"]){  [self.userInfoDic release], self.userInfoDic = nil; }}//請求成功回調方法- (void)request:(SinaWeiboRequest *)request didFinishLoadingWithResult:(id)result{ if ([request.url hasSuffix:@"users/show.json"]){  [self.userInfoDic release];  self.userInfoDic = [result retain];  //NSLog(@"使用者資訊字典:%@", self.userInfoDic); 字典資料 返回欄位下面 } }

返回欄位說明

以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支援雲棲社區。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.