我正在我的应用程序中集成 facebook 登录。
当我向用户请求权限时,默认 UI 会呈现给他以接受权限,然后当他单击“确定”时,它将从 ui 返回到我的应用程序以继续。
但是,默认的权限 UI 在浏览器中保持打开状态(如果我退出应用程序并打开浏览器,我仍然会看到之前呈现给他的权限 UI。有没有办法在用户授予权限后关闭浏览器中的页面?
希望我很清楚
这是我正在使用的代码:
此方法将向用户显示 facebook 登录页面以获得他的许可
-(BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_location",
@"user_birthday",
nil];
return [FBSession openActiveSessionWithReadPermissions:permissions
allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
[self HandleLogin];
}];
}
然后如果登录和许可成功
- (void)HandleLogin {
if (FBSession.activeSession.isOpen) {
[FBRequestConnection
startForMeWithCompletionHandler:^(FBRequestConnection *connection,
id<FBGraphUser> user,
NSError *error) {
//DO SOMETHING WITH THE USER INFO
}];
}
}
处理从 Facebook 应用返回的代码
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// attempt to extract a token from the url
return [FBSession.activeSession handleOpenURL:url];
}