iphone - iOS:无需离开应用程序即可连接到 Facebook 进行授权

标签 iphone ios facebook background facebook-graph-api

我知道在 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/

相关文章:

ios - 当嵌入 View 尺寸改变时,如何用动画改变容器 View 尺寸?

ios - 是否可以在应用程序中使用 iOS 7 的修改版 Helvetica?

ios - 通用链接打开错误的应用程序(Facebook 应用程序)

ios - 请将 Facebook SDK 与 JSON 结合使用

javascript - (#3) 应用程序必须在白名单 facebook 上

ios - 如何拍摄未呈现的 UIView 的快照?

iphone - 通过 UIPanGestureRecognizer 很好地移动 View ,但有时会跳动

iphone - 以编程方式显示 iPhone/iPad UDID

ios - 带有 2 个 CALayers 的 UIImageView 用于边框

ios - 如何在 swift 4 中检索图像元数据的自定义值?