2015-06-01 20 views
6

La funzionalità di SLComposeViewController non funziona più come previsto con il più recente aggiornamento dell'app per iPhone di Facebook dal 24 aprile. Qualsiasi testo iniziale specificato viene ignorato, anche se il metodo setInitialText restituisce true come se fosse successo. La finestra di dialogo restituisce quindi "Fatto" se si preme "Fatto" o "Annulla". Mi rendo conto che si tratta di una chiamata Apple e non utilizzo nemmeno l'SDK di Facebook, ma ho verificato che tutto funzioni perfettamente con la versione precedente dell'app Facebook, ma quando si aggiorna l'app Facebook sul proprio iPhone, questa funzionalità non è più funziona come previsto. Si noti che il risultato del gestore di completamento ora restituisce sempre "Fatto", anche quando si preme "Annulla" e inoltre, lo setInitialText: non fa nulla ora. Verificato che lo stesso codice ha funzionato prima della release 24 aprile.setInitialText non funziona con IOS 8.3 (facebook, social, SLComposeViewController)

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) { 

    controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 



    [controller setInitialText:@"hiiiiiii"]; 
    [controller setCompletionHandler:^(SLComposeViewControllerResult result) 
    { 
     if (result == SLComposeViewControllerResultCancelled) 
     { 
      NSLog(@"The user cancelled."); 
     } 
     else if (result == SLComposeViewControllerResultDone) 
     { 
      NSLog(@"The user posted to Facebook"); 
     } 
    }]; 
    [self presentViewController:controller animated:YES completion:nil]; 
} 
else 
{ 
    SCLAlertView *alert = [[SCLAlertView alloc] init]; 
    [alert showWarning:self title:@"alert" subTitle:@"facebook not installed" closeButtonTitle:@"ok" duration:0.0f]; 
} 
+1

prefilling non è consentito su facebook, se questo è quello che stai cercando di fare – luschn

+0

il prefilling è consentito su facebook e questo codice (setInitialText :) era lavoro su iOS7, nella mia app ho bisogno di riempire automaticamente la descrizione di l'oggetto selezionato. Il prefisso –

+0

NON è consentito su Facebook, questo è un dato di fatto. – luschn

risposta

-2

setInitialText: non funziona più perché Facebook ha recentemente cambiato la propria politica sulla precarica, ma addURL: sia ancora funzionante e può essere utile.

SLComposeViewController *mySLComposerSheet = [[SLComposeViewController alloc] init]; 
mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 
NSURL *url = [[NSURL alloc] initWithString:linkString]; 
[mySLComposerSheet addURL:url]; 

[self presentViewController:mySLComposerSheet animated:YES completion:nil]; 

[mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) { 
    NSString *output; 
    switch (result) { 
     case SLComposeViewControllerResultCancelled: 
      NSLog(@"SLComposeViewControllerResultCancelled"); 
      break; 
     case SLComposeViewControllerResultDone: 
      NSLog(@"SLComposeViewControllerResultDone"); 
      break; 
    } 
}]; 

In questo modo posso precompilare Facebook post-compositore con l'URL della mia app.

Spero che sia utile.

0

Al momento di questo post, gli FB non consentono ancora di impostare il testo iniziale, anche utilizzando l'SDK FB.

Un modo che ho implementato per aggirare il problema è quello di copiare il contenuto negli appunti e mostrare una finestra di dialogo per notificare agli utenti che possono incollare il contenuto preimpostato.