2012-09-21 12 views
14

Używam nową integrację Facebook w iOS6 jak następuje:iOS6 Facebook: Co zrobić, jeśli użytkownik nie skonfigurował Facebooka?

SLComposeViewController *fbController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) { 
    SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result){ 

     [fbController dismissViewControllerAnimated:YES completion:nil]; 

     switch(result){ 
      case SLComposeViewControllerResultCancelled: 
      default: 
      { 
       NSLog(@"Cancelled....."); 

      } 
       break; 
      case SLComposeViewControllerResultDone: 
      { 
       NSLog(@"Posted...."); 
      } 
       break; 
     }}; 

    //[fbController addImage:[UIImage imageNamed:@"1.jpg"]]; 
    [fbController setInitialText:@"Test message"]; 
    [fbController addURL:[NSURL URLWithString:self.asset.url]]; 
    [fbController setCompletionHandler:completionHandler]; 
    [self presentViewController:fbController animated:YES completion:nil]; 
} else { 
    NSLog(@"no facebook setup"); 
} 

Problem polega na tym, ja sprawdzając je bez logowania do Facebook i wszystko mogę to komunikat dziennika.

** Dziwne jest, pojawia się okno dialogowe, w symulatorze, ale nie urządzenie! **

Jak mogę pokazać użytkownikowi alert, który mówi im, że muszą zalogować się na Facebook ? Widziałem zrzuty ekranu alertu systemowego, ale nie mam tego z jakiegoś powodu. Co zrobiłem źle?

Odpowiedz

28

Usunięcie czeku dla [SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook] rozwiązało problem.

+0

naprawiono również dla urządzenia? – msk

+0

Tak, to ostrzeżenie pojawiło się, gdy usunąłem ten test, również w symulatorze na urządzeniu. – msk

+0

Tak, naprawione również dla tego urządzenia. –

1

Nie sądzę, że otrzymasz alert systemowy (nie jestem pewien, ale oparty na doświadczeniu Twittera). Chociaż widziałem to w niektórych najnowszych blogach/postach internetowych, ale to też nie działa dla mnie. Proponuję w takim przypadku raczej poprosić o poświadczenia użytkownika FB (niestandardowe okno dialogowe lub FBDialog) i dodać konto FB na iPadzie. Poniższy kod nie jest testowany, ale możesz uzyskać pomysł. Robię coś podobnego na Twitterze &, który działa dobrze w moich aplikacjach.

+0

Właśnie zdałem sobie sprawę, że mam okno dialogowe w symulatorze, ale nie urządzenie. Bardzo dziwne. –

7

Wygląda na to, że [SLComposeViewController isAvailableForServiceType:] zwraca wartość true w symulatorze, nawet jeśli nie skonfigurowałeś tam konta.

Powiązane problemy