3

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];
                 }
             }
         }
     }];
   }

ありがとう

4

1 に答える 1