微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 登录无法使用/坚持使用最新的Facebook SDK

我正在运行使用Facebook SDK(4.9.1)的问题,如果没有系统帐户,它将在应用浏览器中打开以进行登录.

从系统登录Facebook帐户运作良好.我使用以下代码

FBSDKLoginManager *manager = [[FBSDKLoginManager alloc] init];
   manager.loginBehavior = FBSDKLoginBehaviorSystemAccount;
   [manager logInWithReadPermissions:@[@"public_profile",@"email",@"user_friends"] fromViewController:controller handler:^(FBSDKLoginManagerLoginResult *result,NSError *error) {
            if (error) {
                success(kFacebookStatusFailed);
            } else if (result.isCancelled) {
                success(kFacebookStatusCancelled);
            } else {
                success(kFacebookStatusSuccess);
            }
}];

我已正确完成了here定义的所有必需的info.plist设置.

问题是当它使用inapp浏览器登录时,实际上是使用调试找到的SafariViewController.它经历了所有登录过程,但最终它陷入了一个白色的空白屏幕并且没有消失,请参见下面的截图

已经尝试了所有可能的步骤,但无法克服它.但是当我设置新项目时,没有任何东西只有上面的登录代码和正确的设置,所有工作正常.

Fresh项目和原始项目的唯一区别是应用程序中使用的不同框架的数量,如Crashlytics,Fabric,Instabug,Google Frameworks等.有什么理由我应该怀疑这些框架导致问题,我想不.那么,可能是什么问题,任何遇到同样问题并能帮助我的人都将不胜感激.

谢谢.

解决方法

我遇到了同样的问题.将其添加到AppDelegate:

在AppDelegate.m中

>在应用程序中:didFinishLaunchingWithOptions:

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [[FBSDKApplicationDelegate sharedInstance] application:application
                         didFinishLaunchingWithOptions:launchOptions];
}

>将以下方法添加到AppDelegate.m:

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(Nsstring *)sourceApplication annotation:(id)annotation {
  return [[FBSDKApplicationDelegate sharedInstance] application:application openURL:url sourceApplication:sourceApplication annotation:annotation];
}

我不知道SafariViewController是否检查应用程序:openURL:sourceApplication:annotation但这对我有用.
试试看.我希望这个对你有用.

资料来源:https://developers.facebook.com/docs/ios/getting-started

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐