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];
}
}
}
}];
}
ありがとう