在我的 iPhone 应用程序中,我希望用户能够在 Facebook 上分享链接。
当他们单击“共享”时,我使用以下代码使用新的 SDK 3.1 登录 Facebook,然后FBRequestConnection
在完成处理程序中使用(一个简单的publish_action
)。
[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 中,它会打开 Mobile Safari:
我的问题是在 iOS 6 上,我得到了相同的流程,但在一个模式弹出窗口中(在我的应用程序顶部)。
弹出窗口有两个问题:
1. 关闭它
它不能被取消或驳回。相比之下,SDK 中的HelloFacebookSample应用程序具有相同的弹出窗口,但带有一个十字按钮来关闭它。
注意:现在由于ravi解决了,我错过了包含“关闭”图像的 Facebook 资源包。
2. 接受权限
在弹出窗口的第二步(参见上面的屏幕),按Okay不会执行任何操作。按下“X”会调用带有错误的完成处理程序,这很好,但是Okay没有任何反应。这是使用 SDK 3.1 登录 Facebook 的正确方法吗?我是否错过了专门对弹出窗口做出反应的回调?
更多说明:
仅当未安装Facebook 应用且未在 iOS 设置中配置Facebook 帐户时,才会在iOS6中发生这种情况。
谢谢!