iOS Facebook SDK 登录视图有时会显示桌面 Web 而不是移动 Web
Posted
技术标签:
【中文标题】iOS Facebook SDK 登录视图有时会显示桌面 Web 而不是移动 Web【英文标题】:iOS Facebook SDK Login View sometimes shows Desktop Web rather than Mobile Web 【发布时间】:2014-11-14 16:54:04 【问题描述】:我正在通过 Pods 使用最新的 FB SDK - 版本 3.18.2,带有 Xcode 5 和仅限 iPhone 的应用程序。我在 Storyboard 中使用 FBLoginView,因此点击它会弹出应用程序的 Facebook 登录,登录操作会调用该 FBLoginView 按钮的父视图控制器的委托。
一切正常——但是,有时会显示桌面版登录而不是移动版。这是间歇性的——我有一个从不显示的测试仪,一个有时会得到它,一个经常得到它。
知道如何防止 SDK 显示桌面登录吗?
【问题讨论】:
【参考方案1】:如果用户没有安装 Facebook 本地应用程序,Facebook 网站将打开。 否则它将打开 Facebook 原生应用。
【讨论】:
问题是当 Facebook 应用不存在时,如何强制 SDK 始终加载移动版本 (m.facebook.com)。【参考方案2】:Facebook SDK 中有一个名为 openWithBehavior 的函数可用于会话。使用如下所示:
FBSession *session = [[FBSession alloc] initWithPermissions:@[@"public_profile", @"email",@"user_location",@"user_birthday",@"user_likes"]];
[FBSession setActiveSession:session];
[session openWithBehavior:FBSessionLoginBehaviorForcingWebView
completionHandler:^(FBSession *session,
FBSessionState status,
NSError *error)
if (FBSession.activeSession.isOpen)
//Do Something
]
【讨论】:
我不想强制浏览网页——我希望 SDK 使用它现在使用的普通网页弹出窗口,以防用户没有激活 Facebook 应用或登录在设置中。 如果有账号,那么在同一个地方还有另一个功能可以登录。检查一下。以上是关于iOS Facebook SDK 登录视图有时会显示桌面 Web 而不是移动 Web的主要内容,如果未能解决你的问题,请参考以下文章
Facebook iOS SDK 登录原生和 UIWebView 登录