Facebook的SDK - iOS6登录弹出不能被驳回
在我的iPhone应用程序中,我希望用户能够在Facebook上共享链接。Facebook的SDK - iOS6登录弹出不能被驳回
当他们点击“共享”时,我使用下面的代码使用新的SDK 3.1登录到Facebook,然后在完成处理程序(简单的publish_action
)中使用FBRequestConnection
。
[FBSession openActiveSessionWithPublishPermissions:@[@"publish_actions"] defaultAudience:FBSessionDefaultAudienceFriends allowLoginUI:true completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
// Now call FBRequestConnection to post in the stream
}];
当用户安装了Facebook应用程序时,它只是将登录委托给应用程序。但是,当它们不这样做时,它会在WebView中打开登录页面。
在iOS 5中,它打开移动Safari浏览器:
我的问题是在iOS 6中,我得到了相同的流量,但在一个模式弹出,而不是(在我的应用程序的顶部)。
我有2个问题与弹出:
1.关闭它
它不能被取消或开除。相比之下,SDK中的HelloFacebook示例应用程序具有相同的弹出窗口,但具有用于关闭它的十字按钮。
注:现在解决了由于拉维,我缺少其中包含“关闭”图像Facebook的资源包。
2.接受许可
在弹出的第二个步骤(见上面的屏幕),按好没有做任何事情。按“X”调用完成处理程序错误,这是很好的,但没有发生与好吧。这是使用SDK 3.1登录Facebook的正确方法吗?我是否错过了一个专门针对弹出窗口的回调?
一些更澄清:
这只是发生在iOS6的当Facebook的应用程序是不 安装和Facebook帐户是在iOS的 设置未配置。
谢谢!
我不能评论,因为我的声望小于50,所以试图指出我的观察结果作为答案。
我也在使用上的Facebook sdk3.1时发现了这个问题。在我的情况下,我使用旧式facebook对象创建,并调用[facebook authorize:permissions]
,但我修改了源代码,始终使用“FBSessionLoginBehaviorForcingWebView
”,以便我的登录始终通过应用内Web登录。
在我的情况下,我缺少FBUserSettingsViewResources.bundle和FacebookSDKResources.bundle,所以我无法看到十字按钮(但我可以在该位置点击并拨打电话- (void)fbDidNotLogin:(BOOL)cancelled
{)。
我也遇到了这个问题,它似乎是一个已知的错误:
https://developers.facebook.com/bugs/539702426044893?browse=search_507daefc9af416244781488
我还没有解决这个问题呢,但对我来说似乎只能在模拟器上发生。我的应用程序似乎总是通过Safari浏览器登录的设备上安装
编辑时:所以多一点挖后,我遇到了这个堆栈溢出线程: FBConnect login, share with a webview?
我意识到,我们所看到的对话框是一个uiWebView这实际上是后备,如果应用程序无法打开safari中的对话框。我能够解决我的问题,我的重置我的模拟器,这将基本上清理饼干。从你的屏幕截图中,我相信你也在模拟器中工作。我想知道如果你有相同的结果,你是否重置模拟器?
从菜单iPhone模拟器 - >重置内容和设置...
+1 IM FB更新为3.0SDk – iMeMyself
后可能是在SDK中的错误有类似的问题。只是一张纸条; Facebook鼓励在实际发布时(而不是在连接时)请求发布权限:http://developers.facebook.com/docs/howtos/ios-6/ –
感谢Kristofer - “稍后再执行publish_action”I实际上意味着只要登录回调到达。我认为应该可以 – Gromix