QQ登录认证后会触发appDelegate 的
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
QQ分享后,微信登录成功,微信分享成功后均会触发该方法。
问题一:如何区分到底是QQ登录回调还是QQ分享回调,因为在该方法中他们两个操作需要处理的事件不一样,而微信则是统一的处理就不存在该问题。
问题二:QQ分享和微信分享后均会触发其协议方法(首先appDelegate需要分别遵守微信和QQ的那两个协议 WXApiDelegate,QQApiInterfaceDelegate),然而这两个协议中对于分享成功或者失败的回调用的协议方法是一样的,微信的是 -(void) onResp:(BaseResp*)resp,而QQ的是- (void)onResp:(QQBaseResp *)resp 方法名一模一样,仅仅是参数类型不一样,怎么处理。
对于问题一:我们暂且不管它是由登录还是分享完成引起的回调
if ([url.description hasPrefix:tencentUrlPrefix]){
[QQApiInterface handleOpenURL:url delegate:self];
if (YES == [TencentOAuth CanHandleOpenURL:url]) {
return [TencentOAuth HandleOpenURL:url];
}
return YES;
}
我们都去响应他的回调,具体是那种我们可以根据其re