我知道在 Graph API 出现之前这是可能的。
我开发的 iPhone 应用可能不在后台(要求之一)。
此外,应用程序启动时还有一个登录屏幕。
因此,每次用户想要分享内容时,不适合转到后台以对 Facebook 进行身份验证,然后返回应用程序并再次登录。
所以,我的问题是是否有一种方法可以在不离开应用程序的情况下通过 Facebook 进行身份验证。
顺便说一句,我尝试使用旧的 API。
它在开始时有效,但昨天它停止了。
我只是在旧的 Facebook 登录 Web View 中看到一个空白屏幕。
我还检查了一个使用旧 Facebook Connect API 的旧应用程序,我在该应用程序中也看到了相同的空白登录屏幕。
任何想法将不胜感激。
提前谢谢你。
--
迈克尔。
最佳答案
在 Facebook.m 中
- (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth
safariAuth:(BOOL)trySafariAuth {
NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
_appId, @"client_id",
@"user_agent", @"type",
kRedirectURL, @"redirect_uri",
@"touch", @"display",
kSDKVersion, @"sdk",
nil];
方法注释掉这个
UIDevice *device = [UIDevice currentDevice];
if ([device respondsToSelector:@selector(isMultitaskingSupported)] && [device isMultitaskingSupported]) {
if (tryFBAppAuth) {
NSString *fbAppUrl = [FBRequest serializeURL:kFBAppAuthURL params:params];
didOpenOtherApp = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:fbAppUrl]];
}
if (trySafariAuth && !didOpenOtherApp) {
NSString *nextUrl = [NSString stringWithFormat:@"fb%@://authorize", _appId];
[params setValue:nextUrl forKey:@"redirect_uri"];
NSString *fbAppUrl = [FBRequest serializeURL:loginDialogURL params:params];
didOpenOtherApp = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:fbAppUrl]];
}
}
这将阻止应用程序进入后台并向您显示标准的 fb 对话框。
关于iphone - iOS:无需离开应用程序即可连接到 Facebook 进行授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5666523/