我正在使用 Azure SDK 中的 facebook 登录,我正在按钮中使用以下代码:
-(void)fblogin
{
[_azureService.client loginWithProvider:@"facebook" urlScheme:@"dribel" controller:self animated:YES completion:^(MSUser * _Nullable user, NSError * _Nullable error)
{
if (error)
{
NSLog(@"Login failed with error: %@, %@", error, [error userInfo]);
}
else
{
_azureService.client.currentUser = user;
NSLog(@"User logged in: %@", user.userId);
[self fblogin];
}
}];
}
像这样的 webview,打开并完成所有 facebook 登录过程......
当它结束时,它会在应用程序委托中调用以下方法,因为它是真的,它会恢复登录流程......
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options
{
if ([[url.scheme lowercaseString] isEqualToString:@"dribel"])
{
// Resume login flow
return [self.azureService.client resumeWithURL:url];
}
else {
return NO;
}
}
但是 webview 应该被解散,并且在被解散后,代码应该落在第一段代码的 else 语句上,但它什么也没做。我必须按下完成并登陆 if true 声明,它说我取消了它。有谁知道可能出了什么问题?
我们已经在 azure 门户中设置了外部 url 以重定向到正确的 appname:// 所以这就是我们在应用程序委托中实现它的原因。但是还缺少什么?