关于微信登录在登录界面怎么传值

参考文章

问题:在Appdelegate中调用微信的协议方法,但是如何在登录控制器中获取到code值

解决:用通知传值

-(void) onResp:(BaseResp*)resp{
    /*
     enum  WXErrCode {
     WXSuccess           = 0,    成功
     WXErrCodeCommon     = -1,  普通错误类型
     WXErrCodeUserCancel = -2,    用户点击取消并返回
     WXErrCodeSentFail   = -3,   发送失败
     WXErrCodeAuthDeny   = -4,    授权失败
     WXErrCodeUnsupport  = -5,   微信不支持
     };
     */
    if ([resp isKindOfClass:[SendAuthResp class]]) {   //授权登录的类。
        if (resp.errCode == 0) {  //成功。
            SendAuthResp *resp2 = (SendAuthResp *)resp;
            //发通知
            [[NSNotificationCenter defaultCenter] postNotificationName:@"wxLogin" object:resp2.code];
        }else{ //失败
            NSLog(@"授权失败");
        }
    }
}

在登录的控制器里面传递参数即可

- (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];

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • error code(错误代码)=0是操作成功完成。error code(错误代码)=1是功能错误。error c...
    Heikki_阅读 3,457评论 1 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,145评论 1 32
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,860评论 2 9
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,956评论 0 15
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,451评论 0 9