为了账号安全,请及时绑定邮箱和手机立即绑定

OAuth认证 应用回调函数位置更改

OAuth认证 应用回调函数位置更改

扬帆大鱼 2019-04-16 20:26:24
大家都知道,应用在从浏览器跳回到应用时会在appdelegate中调用如下方法:-(BOOL)application:(UIApplication*)applicationopenURL:(NSURL*)urlsourceApplication:(NSString*)sourceApplicationannotation:(id)annotation{NSLog(@"url=%@",url.absoluteString);NSLog(@"sourceApplication=%@",sourceApplication);[[MBGithubOAuthClientsharedClient]tokenRequestWithCallbackURL:urlsaveOptions:kMBSaveOptionsKeychaincompletion:^(BOOLsuccess,NSError*error){if(error||!success){NSLog(@"Tokenrequestfailed:%@",error.localizedDescription);}else{//Savedtouserdefaults...NSLog(@"Savedtoken");}}];returnYES;}在这里我对返回的url参数可以做处理,可是业务代码不可能写在这里,我应该如何做,使得的可以将回调方法定义在任何位置,类似友盟在controller类中的如下方法:-(void)didFinishGetUMSocialDataInViewController:(UMSocialResponseEntity*)response{//根据`responseCode`得到发送结果,如果分享成功if(response.responseCode==UMSResponseCodeSuccess){//得到分享到的微博平台名NSLog(@"sharetosnsnameis%@",[[response.dataallKeys]objectAtIndex:0]);}if(response.viewControllerType==UMSViewControllerOauth){NSLog(@"didFinishOauthAndGetAccountresponseis%@",response);}}当然我希望如果可以,实现如下的回调方式:[[OAuthSignUtilsharedOAuthSignUtil]signInto:SignIntoGithubcompletion:^(BOOLsuccess,NSError*error){//做回调处理}];即我使用signInto:SignIntoGithub方法去获取授权,然后回调成功之时,之后在下面的block做处理,请各位大牛不吝赐教
查看完整描述

2 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

简单想了一下,你可以直接在openURL方法中使用[[OAuthSignUtilsharedOAuthSignUtil]receiveResponse]来调用block(恩,首先你得在signInto中持有这个block)
如果你不相在openURL方法中暴露你的调用,用methodswizzling把openURL换成你自己的方法,这个还是要谨慎使用。
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 388 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号