0

随着 Facebook SDK 3.1 的发布,它有一个类可以在 iOS 6 中启动 Facebook Native Dialog for Post。

下面是它的代码。

[FBNativeDialogs presentShareDialogModallyFrom:currentController initialText:nil image:nil url:nil handler:^(FBNativeDialogResult result, NSError *error) {
 //Print Error
                    }];

错误域=com.facebook.sdk 代码=7“操作无法完成。(com.facebook.sdk 错误 7。)”UserInfo=0x1e5e0930 {com.facebook.sdk:NativeDialogReasonKey=com.facebook.sdk:NativeDialogNotSupported

因此,我尝试先使用以下代码登录,然后启动 FBNativeDialog。但是,当在 Safari 中按下 Facebook 权限窗口的Okay按钮时,它不会进入完成处理程序。

AppDelegate *appDelegate=[[UIApplication sharedApplication] delegate];
appDelegate.session = [[FBSession alloc] initWithPermissions:[NSArray arrayWithObjects:@"publish_stream", nil]];


                    [appDelegate.session openWithCompletionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
                        switch (status) {
                            case FBSessionStateOpen:
                            [FBNativeDialogs presentShareDialogModallyFrom:currentController initialText:nil image:nil url:nil handler:^(FBNativeDialogResult result, NSError *error) {
                        NSLog(@"Dialog Error= %@",error);
                    }];
                                break;

                            default:
                                break;
                        }
                    }];
4

1 回答 1

1

当在 Safari 中按下 Facebook 权限窗口的确定按钮时

您需要在 iOS 6 设备/模拟器上设置 Facebook 帐户才能使用本机共享对话框。完成此操作后,您还将获得本机 iOS 权限对话框,因此不应有应用程序切换到 Safari 登录。请参阅我对http://facebook.stackoverflow.com/a/12681352/1712979的类似回复

于 2012-10-01T21:30:28.373 回答