2012-09-29 4 views
6

Ich versuche, auf Facebook mit openActiveSessionWithPublishPermissions zu veröffentlichen, wenn der Benutzer nicht eingeloggt ist, muss er zuerst anmelden und dann die Nachricht mit io6 Facebook nativen Dialog.Facebook ios6 completionHandler nicht nach der Anmeldung

Was ich gefunden habe ist, dass ich mich anmelden kann, aber Abschluss-Handler wird nicht aufgerufen.

Eine andere Sache, die ich bemerkt, dass, wenn ich wieder die Login-Schaltfläche klicken, wird es Abschluss-Handler mit dem folgenden Fehler FBSessionStateClosedLoginFailed dann nennt.

Ich habe mich auf this post beziehen, aber immer noch keine Lösung für mein Problem gefunden.

NSArray *permissions = [NSArray arrayWithObjects:@"publish_stream", nil]; 
[FBSession openActiveSessionWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceEveryone allowLoginUI:YES completionHandler: 
^(FBSession *session, FBSessionState status, NSError *error) 
{ 

    switch (status) { 

        case FBSessionStateOpen: 
         { 
          [FBNativeDialogs presentShareDialogModallyFrom:currentController initialText:nil image:nil url:nil handler:^(FBNativeDialogResult result, NSError *error) {}]; 
         } 
         break; 
        default: 
         break; 
        } 
       }]; 

Antwort

0

Sie sollten dies hinzufügen:

[FBNativeDialogs presentShareDialogModallyFrom:currentController initialText:nil 
    image:nil url:nil handler:^(FBNativeDialogResult result, NSError *error) { 
    if (result==FBNativeDialogResultCancelled) { 
    UIAlertView  *alert=[[UIAlertView alloc]initWithTitle:@"Error" 
     message:@"Sending Cancelled" delegate:self cancelButtonTitle:@"OK" 
     otherButtonTitles: nil]; 
    [alert show]; 
} else if (result==FBNativeDialogResultSucceeded) { 
    UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Succeed" 
    message:@"succeed" delegate:self cancelButtonTitle:@"OK" 
    otherButtonTitles: nil]; 
    [alert show]; 
}***}***]; 
5

Stellen Sie sicher, dass die handleOpenUrl Methode implementiert.

-(BOOL)application:(UIApplication *)application 
      openURL:(NSURL *)url 
sourceApplication:(NSString *)sourceApplication 
     annotation:(id)annotation { 

    return [[FBSession activeSession] handleOpenURL:url]; 

} 
+0

Dies ist getan, ich hatte diesen Code bereits hinzugefügt. – andyPaul