iOS 9 Facebook SDKlogin/共享
我遇到了使用iOS 9上最新的Facebook SDK(4.6)的问题。要授权用户,我使用FBSDKLoginManager。 我试过设置这个:
loginManager.loginBehavior = FBSDKLoginBehaviorNative;
但是SDK似乎总是使用SFSafariViewController来授权Facebook。
这是我面临的问题。 如果用户使用FacebookAccountA在其设备上安装了FB应用程序,然后尝试使用我的应用程序进行身份validation,则会显示此SFSafariViewController,并且可以使用FacebookAccountB(一个单独的FB帐户)对应用程序进行身份validation。
然后在应用程序中,我尝试分享以下内容:
FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init]; content.contentURL = [NSURL URLWithString:shareString]; FBSDKShareDialog *dialog = [[FBSDKShareDialog alloc] init]; dialog.fromViewController = self; dialog.shareContent = content; dialog.delegate = self; [dialog show];
共享对话框的默认设置是FBSDKShareDialogModeShareSheet。 分享表格正确显示在应用程序中,并且该post似乎可以正常工作,但该链接已发布到FacebookAccountA(本机应用程序帐户),而不是FacebookAccountB(通过我的应用程序进行身份validation的那一个)。
因此,如果用户使用不同的Facebook帐户对自己的应用程序进行身份validation,而不是在其本机应用程序中login,则最终可能会发布到与用于validation应用程序的帐户不同的帐户。 有没有办法来防止这一点?
提前致谢。
这是devise。
在FB SDK v4.6和v3.24中,我们默认为Safari View Controller,而不是快速应用程序切换到原生Facebook应用程序。 在iOS 9中,快速应用切换stream程会生成两个插页式广告“ExampleApp想要打开Facebook”和“Facebook想要打开ExampleApp”。
对于在iOS上loginSafari的数亿人来说,他们的体验非常棒。
使用SLComposerViewController进行Fb共享。 它将使用您的ios设备默认Facebook sdkslogin或您已安装的应用程序login。
以下是参考资料: SLComposeViewController共享教程
希望这可以帮助!
是的,它是由iOS 9devise的,但我们可以轻松解决它!
let dialog = FBSDKShareDialog() dialog.mode = .Native if !dialog.canShow() { self.mode = .Automatic }
好极了!