2015-06-01 6 views
6

Die Funktionalität von SLComposeViewController funktioniert nicht mehr wie erwartet mit dem neuesten Facebook iPhone App Update vom 24. April. Jeder angegebene Anfangstext wird ignoriert, obwohl die Methode setInitialText true zurückgibt, als wäre sie erfolgreich. Der Dialog gibt dann immer "Fertig" zurück, egal ob Sie "Fertig" oder "Abbrechen" drücken. Mir ist klar, dass es sich um einen Apple-Anruf handelt und ich benutze nicht einmal das Facebook SDK, aber ich habe festgestellt, dass alles perfekt mit der vorherigen Version der Facebook App funktioniert, aber wenn du die Facebook App auf deinem iPhone aktualisierst, funktioniert diese Funktionalität nicht mehr funktioniert wie erwartet. Beachten Sie, dass das Ergebnis des Beendigungshandlers jetzt immer "Fertig" zurückgibt - auch wenn Sie "Abbrechen" drücken und auch setInitialText: tut jetzt nichts. Verifiziert, dass der gleiche Code vor der 24. April-Veröffentlichung funktioniert hat.setInitialText funktioniert nicht mit 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

Vorfüllen ist nicht erlaubt auf Facebook, wenn das ist, was Sie versuchen zu tun – luschn

+0

das Vorfüllen ist auf Facebook erlaubt und dieser Code (setInitialText :) war Arbeit auf ios7, in meiner App muss ich es automatisch die Beschreibung zu füllen das ausgewählte Element. –

+0

Vorfüllen ist auf Facebook NICHT erlaubt, das ist eine Tatsache. – luschn

Antwort

-2

setInitialText: funktioniert nicht mehr, weil Facebook seine Politik hat vor kurzem über Vorfüllen geändert, aber addURL: arbeitet immer noch und kann nützlich sein.

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

So kann ich Facebook Post Composer mit der URL zu meiner App vorbefüllen.

Ich hoffe, es ist nützlich.

0

Zum Zeitpunkt dieses Post, FBs noch nicht erlaubt, ersten Text zu setzen, auch mit FB SDK.

Eine Möglichkeit, das Problem zu umgehen, besteht darin, den Inhalt in die Zwischenablage zu kopieren und einen Dialog anzuzeigen, der Benutzer darüber informiert, dass sie den voreingestellten Inhalt einfügen können.

Verwandte Themen