iph*_*nic 8 facebook objective-c ios sfsafariviewcontroller
我正在运行使用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);
}
}];
Run Code Online (Sandbox Code Playgroud)
我已正确完成此处定义的所有必需的info.plist设置.
问题是当它使用inapp浏览器登录时,实际上是使用调试找到的SafariViewController.它经历了所有登录过程,但最后它卡在一个白色的空白屏幕,并没有解散,见下面的截图
已经尝试了所有可能的步骤,但无法克服它.但是,当我设置新项目时,只有上述登录代码和正确的设置,一切正常.
Fresh项目和原始项目的唯一区别是应用程序中使用的不同框架的数量,如Crashlytics,Fabric,Instabug,Google Frameworks等.我是否应该怀疑这些框架导致问题,我认为没有.那么,可能是什么问题,任何遇到同样问题并且可以帮助我的人都将不胜感激.
谢谢.
我遇到了同样的问题.将其添加到AppDelegate:
在AppDelegate.m中
在 application:didFinishLaunchingWithOptions:
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[FBSDKApplicationDelegate sharedInstance] application:application
didFinishLaunchingWithOptions:launchOptions];
}
Run Code Online (Sandbox Code Playgroud)将以下方法添加到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];
}
Run Code Online (Sandbox Code Playgroud)我不知道是否SafariViewController检查了application:openURL:sourceApplication:annotation但这对我有用.试试看.我希望这个对你有用.
资料来源:https://developers.facebook.com/docs/ios/getting-started
| 归档时间: |
|
| 查看次数: |
946 次 |
| 最近记录: |