亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

iOS微信第三方登錄實(shí)例

 更新時(shí)間:2016年12月07日 10:30:20   作者:st646889325  
這篇文章主要為大家詳細(xì)介紹了iOS微信第三方登錄實(shí)現(xiàn)過(guò)程,一步一步告訴大家iOS微信實(shí)現(xiàn)第三方登錄的方法,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了iOS微信第三方登錄,供大家參考,具體內(nèi)容如下

一、準(zhǔn)備工作
1、到微信開(kāi)放平臺(tái)注冊(cè)成開(kāi)發(fā)者,獲取appid
2、導(dǎo)入WeChatConnection.framework
3、配置URL Schemes  輸入appid  例如wx29ce0f21ea982cb8

二、配置AppDelegate.m

1、 注冊(cè)微信

//微信登陸 
[WXApi registerApp:WeiXin_AppId withDescription:@"weixin"]; 

2、設(shè)置函數(shù)

//把代理設(shè)置到登陸視圖中
- (BOOL)application:(UIApplication *)application 
   handleOpenURL:(NSURL *)url 
{ 
  return [WXApi handleOpenURL:url delegate:[LoginViewController shareLogin]]; 
} 
- (BOOL)application:(UIApplication *)application 
      openURL:(NSURL *)url 
 sourceApplication:(NSString *)sourceApplication 
     annotation:(id)annotation 
{ 
  return [WXApi handleOpenURL:url delegate:[LoginViewController shareLogin]]; 
} 

三、登陸頁(yè)代碼

1、微信登錄授權(quán)比較復(fù)雜,相比QQ,新浪多了幾步,簡(jiǎn)單說(shuō)就是需要三步,第一步,獲取code,這個(gè)用來(lái)獲取token,第二步,就是帶上code獲取token,第三步,根據(jù)第二步獲取的token和openid來(lái)獲取用戶(hù)的相關(guān)信息

2、

第一步:獲取code

-(void)weiXinLogin 
{ 
  SendAuthReq* req =[[SendAuthReq alloc] init]; 
  req.scope = @"snsapi_userinfo,snsapi_base"; 
  req.state = @"0744" ; 
  [WXApi sendReq:req]; 
} 
 
-(void)onReq:(BaseReq *)req 
{ 
  NSLog(@"呵呵"); 
  [self msgHint:@"登陸失敗"]; 
} 
 
-(void)onResp:(BaseResp *)resp 
{ 
  SendAuthResp* sender = (SendAuthResp*)resp; 
  NSString* code = sender.code; 
  NSLog(@"啦啦 code = %@",code); 
   
  MBProgressHUD * hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; 
  hud.labelText = @"收取用戶(hù)信息.."; 
  [self getAccess_tokenWithCode:code]; 
} 

第二步 獲取token

-(void)getAccess_tokenWithCode:(NSString*)myCode 
{ 
  //https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code 
   
  NSString *url =[NSString stringWithFormat:@"https://api.weixin.qq.com/sns/oauth2/access_token?appid=%@&secret=%@&code=%@&grant_type=authorization_code",kWXAPP_ID,kWXAPP_SECRET,myCode]; 
   
  dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
    NSURL *zoneUrl = [NSURL URLWithString:url]; 
    NSString *zoneStr = [NSString stringWithContentsOfURL:zoneUrl encoding:NSUTF8StringEncoding error:nil]; 
    NSData *data = [zoneStr dataUsingEncoding:NSUTF8StringEncoding]; 
    dispatch_async(dispatch_get_main_queue(), ^{ 
      if (data) { 
        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; 
        NSString* token = [dic objectForKey:@"access_token"]; 
        NSString* openid = [dic objectForKey:@"openid"]; 
        [self getUserInfoWithToken:token openId:openid]; 
        NSLog(@"token = %@",token); 
        NSLog(@"openid = %@",openid); 
         
         
      } 
    }); 
  }); 
} 

第三步:獲取用戶(hù)信息

-(void)getUserInfoWithToken:(NSString*)myToken openId:(NSString*)myOpenId 
{ 
  // https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID 
   
  NSString *url =[NSString stringWithFormat:@"https://api.weixin.qq.com/sns/userinfo?access_token=%@&openid=%@",myToken,myOpenId]; 
  NSLog(@"infoUrl = %@",url); 
  dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
    NSURL *zoneUrl = [NSURL URLWithString:url]; 
    NSString *zoneStr = [NSString stringWithContentsOfURL:zoneUrl encoding:NSUTF8StringEncoding error:nil]; 
    NSData *data = [zoneStr dataUsingEncoding:NSUTF8StringEncoding]; 
    dispatch_async(dispatch_get_main_queue(), ^{ 
      if (data) { 
        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]; 
        NSString* nickName = [dic objectForKey:@"nickname"]; 
        NSString* wxHeadImgUrl = [dic objectForKey:@"headimgurl"]; 
         
        NSLog(@"nickName = %@",nickName); 
        NSLog(@"headImg = %@",wxHeadImgUrl); 
         
        NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
        [userDefaults setObject:ON forKey:LogState]; 
        [userDefaults setObject:ThirdFoudationLogin forKey:LogType]; 
        [userDefaults setObject:nickName forKey:LoginName]; 
        [userDefaults setObject:wxHeadImgUrl forKey:UserHeaderPath]; 
        [userDefaults synchronize]; 
         
        [MBProgressHUD hideAllHUDsForView:self.view animated:YES]; 
        [self msgHint:@"微信登陸成功"]; 
        [self popView]; 
      } 
    }); 
     
  }); 
} 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用iOS繪制圖片生成隨機(jī)驗(yàn)證碼示例代碼

    利用iOS繪制圖片生成隨機(jī)驗(yàn)證碼示例代碼

    驗(yàn)證碼的功能一般是防止使用程序惡意注冊(cè)、暴力破解或批量發(fā)帖而設(shè)置的。所謂驗(yàn)證碼,就是將一串隨機(jī)產(chǎn)生的數(shù)字或符號(hào),生成一幅圖片,圖片里加上一些干擾象素(防止OCR),圖片驗(yàn)證碼相信大家都見(jiàn)到過(guò),這篇文章用示例代碼給大家介紹iOS繪制圖片生成隨機(jī)驗(yàn)證碼的方法。
    2016-11-11
  • Objective-C 宏定義詳細(xì)介紹

    Objective-C 宏定義詳細(xì)介紹

    這篇文章主要介紹了Objective-C 宏定義詳細(xì)介紹的相關(guān)資料,這樣開(kāi)發(fā)起來(lái),更有效率,更好,更簡(jiǎn)潔,需要的朋友可以參考下
    2016-10-10
  • IOS 緩存文件的清除實(shí)現(xiàn)代碼

    IOS 緩存文件的清除實(shí)現(xiàn)代碼

    這篇文章主要介紹了IOS 緩存文件的清除的相關(guān)資料,詳細(xì)說(shuō)明了如何獲取緩存文件,及緩存文件的清除步驟,需要的朋友可以參考下
    2016-10-10
  • iOS開(kāi)發(fā)frame和bounds使用示例詳解

    iOS開(kāi)發(fā)frame和bounds使用示例詳解

    這篇文章主要為大家介紹了iOS開(kāi)發(fā)frame和bounds使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • iOS實(shí)現(xiàn)“搖一搖”與“掃一掃”功能示例代碼

    iOS實(shí)現(xiàn)“搖一搖”與“掃一掃”功能示例代碼

    本篇文章主要介紹了iOS實(shí)現(xiàn)“搖一搖”與“掃一掃”功能示例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-01-01
  • 詳解iOS獲取通訊錄的4種方式

    詳解iOS獲取通訊錄的4種方式

    這篇文章主要為大家詳細(xì)介紹了iOS獲取通訊錄的4種方式,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • iOS開(kāi)發(fā)教程之扇形動(dòng)畫(huà)的實(shí)現(xiàn)

    iOS開(kāi)發(fā)教程之扇形動(dòng)畫(huà)的實(shí)現(xiàn)

    實(shí)現(xiàn)扇形圖大家應(yīng)該都會(huì)的,但是扇形動(dòng)畫(huà)大家都會(huì)實(shí)現(xiàn)嗎?下面這篇文章主要給大家介紹了關(guān)于iOS開(kāi)發(fā)教程之扇形動(dòng)畫(huà)實(shí)現(xiàn)的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友們下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)吧。
    2017-06-06
  • iOS11&iPhoneX適配&Xcode9打包注意事項(xiàng)

    iOS11&iPhoneX適配&Xcode9打包注意事項(xiàng)

    這篇文章主要介紹了iOS11&iPhoneX適配&Xcode9打包注意事項(xiàng),需要的朋友可以參考下
    2017-10-10
  • ios NSNotificationCenter通知的簡(jiǎn)單使用

    ios NSNotificationCenter通知的簡(jiǎn)單使用

    這篇文章主要介紹了ios NSNotificationCenter通知的簡(jiǎn)單使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • iOS統(tǒng)計(jì)工程里所有大于2000行代碼的文件方法

    iOS統(tǒng)計(jì)工程里所有大于2000行代碼的文件方法

    下面小編就為大家分享一篇iOS統(tǒng)計(jì)工程里所有大于2000行代碼的文件方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01

最新評(píng)論