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浏览器:

enter image description here

我的问题是在iOS 6中,我得到了相同的流量,但在一个模式弹出,而不是(在我的应用程序的顶部)。

enter image description here

我有2个问题与弹出:

1.关闭它

它不能被取消或开除。相比之下,SDK中的HelloFacebook示例应用程序具有相同的弹出窗口,但具有用于关闭它的十字按钮。

enter image description here

注:现在解决了由于拉维,我缺少其中包含“关闭”图像Facebook的资源包。

2.接受许可

在弹出的第二个步骤(见上面的屏幕),按没有做任何事情。按“X”调用完成处理程序错误,这是很好的,但没有发生与好吧。这是使用SDK 3.1登录Facebook的正确方法吗?我是否错过了一个专门针对弹出窗口的回调?

一些更澄清:

这只是发生在iOS6的当Facebook的应用程序是不 安装和Facebook帐户是在iOS的 设置未配置

谢谢!

+0

+1 IM FB更新为3.0SDk – iMeMyself

+1

后可能是在SDK中的错误有类似的问题。只是一张纸条; Facebook鼓励在实际发布时(而不是在连接时)请求发布权限:http://developers.facebook.com/docs/howtos/ios-6/ –

+0

感谢Kristofer - “稍后再执行publish_action”I实际上意味着只要登录回调到达。我认为应该可以 – Gromix

我不能评论,因为我的声望小于50,所以试图指出我的观察结果作为答案。

我也在使用上的Facebook sdk3.1时发现了这个问题。在我的情况下,我使用旧式facebook对象创建,并调用[facebook authorize:permissions],但我修改了源代码,始终使用“FBSessionLoginBehaviorForcingWebView”,以便我的登录始终通过应用内Web登录。

在我的情况下,我缺少FBUserSettingsViewResources.bundle和FacebookSDKResources.bundle,所以我无法看到十字按钮(但我可以在该位置点击并拨打电话- (void)fbDidNotLogin:(BOOL)cancelled {)。

+0

非常感谢,这是绝对是朝着正确方向迈出的一步!我也错过了资源包。我现在可以看到并点击关闭按钮。右侧的“好”按钮仍然没有做任何事情,这可能是一个不同的问题。 – Gromix

+0

即使添加FBUserSettingsViewResources.bundle和FacwebookSDKResources.bundle我看不到取消按钮.. – iMeMyself

+0

@ravi:如果你不介意我问,你会得到第二个弹出WebView说'你已经授权这个应用程序[好吧]'?如果是这样,你知道点击“Okay”后会调用哪个方法吗?我似乎无法理解我的连线没有正确连接。 – Gromix

我也遇到了这个问题,它似乎是一个已知的错误:

https://developers.facebook.com/bugs/539702426044893?browse=search_507daefc9af416244781488

我还没有解决这个问题呢,但对我来说似乎只能在模拟器上发生。我的应用程序似乎总是通过Safari浏览器登录的设备上安装

编辑时:所以多一点挖后,我遇到了这个堆栈溢出线程: FBConnect login, share with a webview?

我意识到,我们所看到的对话框是一个uiWebView这实际上是后备,如果应用程序无法打开safari中的对话框。我能够解决我的问题,我的重置我的模拟器,这将基本上清理饼干。从你的屏幕截图中,我相信你也在模拟器中工作。我想知道如果你有相同的结果,你是否重置模拟器?

从菜单iPhone模拟器 - >重置内容和设置...