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

3

只需安装 facebook 发布的支持 iOS 7 的最新 Facebook SDK 包 v 3.8。无需对代码进行任何更改。一切都会好起来的。它对我有用。

于 2013-10-04T05:45:43.913 回答