最近写了个项目需要用到微信QQ第三方登陆.介于一年前写过一个第三方demo.那时候里面pod的是pod ‘UMengUShare/Social/ReducedWeChat' pod ‘UMengUShare/Social/ReducedQQ'也就是老版本的了,一切运行ok,等到提交app的时候,苹果发邮件提示检测到里面包含UIWebview(2020年6月份以来苹果禁止带有UIWebview的app上架),于是去看官网,可能友盟官方文档的东西比较多,看起来就比较乱,最后终于找到了去除UIWebview的最新SDK.
下面直接贴出来了:
pod 'UMCCommon'
pod 'UMCShare/Social/WeChat'
pod 'UMCShare/Social/QQ'
在AppDelegate里面导入头文件
import <UMCommon/UMCommon.h>
import <UMSocialQQHandler.h>
import<UMSocialWechatHandler.h>
下面试初始化友盟sdk
- (void)initThirdLogin{
[UMConfigure initWithAppkey:UMKEY channel:@"App Store"];
[UMSocialGlobal shareInstance].universalLinkDic = @{@(UMSocialPlatformType_WechatSession):@"当初申请微信登. 陆时的Universal Links地址",
@(UMSocialPlatformType_QQ):@"qq不需要Universal Links地址,我写的nil"
};
[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:WXAPPID appSecret:WXSECRET redirectURL:@"http://mobile.umeng.com/social"];
[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:QQAPPID appSecret:QQAPPKEY redirectURL:@"http://mobile.umeng.com/social"];
}
- (BOOL)application:(UIApplication *)application openURL: (NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url sourceApplication:sourceApplication annotation:annotation];
if (!result) {
}
return result;
}
下面是点击微信/qq登陆按钮拉起微信或者qq的方法
[[UMSocialManager defaultManager] getUserInfoWithPlatform:platformType currentViewController:self completion:^(id result, NSError *error) {
if (error) {
// NSLog(@"%@",error);
} else {
// UMSocialUserInfoResponse *resp = result;
// NSLog(@"获取微信/qq的name-%@",resp.name);
// NSLog(@"获取微信/qq的openid-%@",resp.openid);
// NSLog(@"获取微信/qq的iconurl1%@",resp.iconurl);
// NSLog(@"获取微信/qq的unionGender-- %@",resp.unionGender);
}
}];
最后别忘了在Info.plist文件中添加微信和qq的白名单呦,到这里就大功告成,希望能给大家带来帮助~