你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 完整的iOS新浪微博分享功能開發

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

編輯:IOS開發綜合

本文實例為大家分享了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:@"[email protected]"];

 UIImage*logobutimg=[UIImage imageNamed:@"[email protected]"];
 [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); 字典數據 返回字段下面

 }

 

}

返回字段說明

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved