FBWebDialog 在 iOS 7 中出现时会闪烁消失。如果我重新启动应用程序,它就会出现。它在 iOS 5 和 iOS 6 中正确显示。我在 iOS 7 中遇到了这种奇怪的行为。我应该怎么做才能解决这个问题。我正在使用 Facebook sdk 3.7.1。
-(void)facebookShareButtonClicked{
NSArray *permissions = [NSArray arrayWithObjects: @"publish_stream", nil];
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:link,@"link",subject,@"caption",description,@"description",nil];
if(OS_VERSION >= 6.0){
[FBSession openActiveSessionWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceEveryone allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError* error){
if(!error){
[self displayShareDialogueBox:params];
}
else{
NSLog(@"error=>%@",[error localizedDescription]);
}
}
else{
[self displayShareDialogueBox:params];
}
}
-(void)displayShareDialogueBox:(NSDictionary*)params{
[FBWebDialogs presentFeedDialogModallyWithSession:(OS_VERSION >= 6.0)?FBSession.activeSession:nil
parameters:params
handler:
^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
if (error) {
// Error launching the dialog or publishing a story.
NSLog(@"Error publishing story.");
}
else {
if (result == FBWebDialogResultDialogNotCompleted) {
// User clicked the "x" icon
NSLog(@"User canceled story publishing.");
}
else {
// Handle the publish feed callback
NSDictionary *urlParams = [self parseURLParams:[resultURL query]];
if (![urlParams valueForKey:@"post_id"]) {
// User clicked the Cancel button
NSLog(@"User canceled story publishing.");
} else {
// User clicked the Share button
NSString *msg = [NSString stringWithFormat:
@"Posted story, id: %@",
[urlParams valueForKey:@"post_id"]];
NSLog(@"%@", msg);
// Show the result in an alert
[[[UIAlertView alloc] initWithTitle:@"Result"
message:msg
delegate:nil
cancelButtonTitle:@"OK!"
otherButtonTitles:nil]
show];
}
}
}
}];
}
谢谢