關于微信登錄在登錄界面怎么傳值

參考文章

問題:在Appdelegate中調用微信的協(xié)議方法,但是如何在登錄控制器中獲取到code值

解決:用通知傳值

-(void) onResp:(BaseResp*)resp{
    /*
     enum  WXErrCode {
     WXSuccess           = 0,    成功
     WXErrCodeCommon     = -1,  普通錯誤類型
     WXErrCodeUserCancel = -2,    用戶點擊取消并返回
     WXErrCodeSentFail   = -3,   發(fā)送失敗
     WXErrCodeAuthDeny   = -4,    授權失敗
     WXErrCodeUnsupport  = -5,   微信不支持
     };
     */
    if ([resp isKindOfClass:[SendAuthResp class]]) {   //授權登錄的類。
        if (resp.errCode == 0) {  //成功。
            SendAuthResp *resp2 = (SendAuthResp *)resp;
            //發(fā)通知
            [[NSNotificationCenter defaultCenter] postNotificationName:@"wxLogin" object:resp2.code];
        }else{ //失敗
            NSLog(@"授權失敗");
        }
    }
}

在登錄的控制器里面?zhèn)鬟f參數(shù)即可

- (void)getWX:(NSNotification *)sender {
    
    NSString *code = [sender object];
    //用戶同意授權
    NSString *URL = @"https://api.weixin.qq.com/sns/oauth2/access_token?";
    NSDictionary *dict = @{
                           @"appid":WX_APPID,
                           @"secret":WXAPPKEYSECRET,
                           @"code":code,
                           @"grant_type":@"authorization_code"
                           };
    
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/plain"];
    
    NSURLSessionDataTask *dataTask = [manager GET:URL parameters:dict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        
        [TTUserManager sharedInstance].currentUser.accessToken = responseObject[@"access_token"];
        [TTUserManager sharedInstance].currentUser.refreshToken = responseObject[@"refresh_token"];
        [TTUserManager sharedInstance].currentUser.expires_in = responseObject[@"expires_in"];
        [TTUserManager sharedInstance].currentUser.scope = responseObject[@"scope"];
        [TTUserManager sharedInstance].currentUser.unionid = responseObject[@"unionid"];
        [TTUserManager sharedInstance].currentUser.openid = responseObject[@"openid"];
        [TTUserManager sharedInstance].currentUser.openId = responseObject[@"openid"];
        
        [self getUserInfoFromWechat];
    } failure:nil];
    [dataTask resume];

}

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • error code(錯誤代碼)=0是操作成功完成。error code(錯誤代碼)=1是功能錯誤。error c...
    Heikki_閱讀 3,547評論 1 9
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,699評論 1 32
  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學習記錄文檔,今天18年5月份再次想寫文章,發(fā)現(xiàn)簡書還為我保存起的...
    Jenaral閱讀 3,186評論 2 9
  • 點擊查看原文 Web SDK 開發(fā)手冊 SDK 概述 網(wǎng)易云信 SDK 為 Web 應用提供一個完善的 IM 系統(tǒng)...
    layjoy閱讀 14,529評論 0 15
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應的列上鍵入重復值時,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 6,039評論 0 9

友情鏈接更多精彩內(nèi)容