做微信授权登录的时候,遇到了几个问题,现在列出来,也许对新手有帮助。
1、授权成功没有回调
首先要在AppDelegate中,实现这两个代理,一般官方文档上都有说明
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
return [WXApi handleOpenURL:url delegate:self];
}
- (BOOL)application:(UIApplication *)application openURL:(nonnull NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(nonnull id)annotation
{
return [WXApi handleOpenURL:url delegate:self];
}
还有要在TARGETS的info栏目中的url types添加url schemes,这个url schemes其实就是就是自己app的标识,添加后,微信才能识别成功后返回到那个应用。
2、回调成功后要获取用户自己的信息怎么办
授权成功并且返回自己app后,微信sdk会调用OnResp函数,在变量resp中,携带有你需要的code,然后再通过code去获取用户信息:
- (void) onResp:(BaseResp*)resp
{
NSLog(@"resp.errCode = %d",resp.errCode);
NSLog(@"resp.errCode = %@",resp.errStr);
NSLog(@"resp.errCode = %d",resp.type);
SendAuthResp *aresp = (SendAuthResp *)resp;
if (aresp.errCode== 0) {
_wxCode = aresp.code;
NSDictionary *dic = @{@"code":CHECK_STRING(_wxCode)};
[RequestUtil getWXAuthWithParams:dic success:^(NSDictionary *responseData) {
if ([responseData isKindOfClass:[NSDictionary class]]) {
}
} failure:^(NSString *errorInfo) {
}];
}
}
获取到code后,我是传给后台,后台通过app端传的code从微信那方获取到用户信息,然后返回给我的。当然你也可以自己获取,这个微信授权文档上有,我就不详细描写了。
希望对大家有帮助。








网友评论