Ich versuche, einen Artikeltitel und eine Artikel-URL zu twittern und dann den Namen der App an das Ende des Tweets anzuhängen. So etwas wie
"Wie man einen Kaktus anbaut (via @appname)" angefügte URL
Ich hatte Probleme herauszufinden, wie man die Länge des Titels und der URL ausbalanciert, um sicherzustellen, dass der Tweet 140 Zeichen nicht überschreitet. Wenn die URL wirklich lang ist, schneiden Sie einen Teil des Artikeltitels aus, damit er unter 140 Zeichen stehen kann.
Betrachtet man die Richtlinien von Twitter für SLComposeViewController
, geben sie diesen Teil an:
Beachten Sie, dass die Methoden zum Festlegen des anfänglichen Inhalts mit booleschen Werten antworten. Dadurch können Sie als Entwickler sich keine Gedanken über die aktuelle Anzahl der Zeichen im Tweet-Text machen, den Sie initialisieren. Wenn die Methode JA zurückgibt, war genug Platz, um den Inhalt hinzuzufügen. Wenn die Methode NEIN zurückgibt, würde der Inhalt, den Sie hinzufügen wollten, zu einem Tweet führen, der länger als 140 Zeichen ist. Die Logik für die Zeichenzählung berücksichtigt auch die aktuelle Anzahl an Zeichen, die für das URL-Wrapping von t.co erforderlich sind.
(aus dem Abschnitt "Codebeispiel").
Da ich den folgenden Code geschrieben habe, um einen Tweet zu erstellen und die URL-Länge und Artikellänge auszugleichen:
%Vor% Was im Grunde die URL hinzufügt, konstruiert dann den Rest des Tweets, indem es die setInitialText:
-Methode durchläuft, bis YES
zurückgegeben wird, wobei die Länge des Titels um 1 verringert wird, wenn% ce_de% zurückgegeben wird, um näher zu kommen auf die erforderliche Länge.
Aber es gibt nie wieder JA! Auch wenn ich es weiß. Ich habe einen Artikel verwendet, der möglicherweise 140 Zeichen überschreiten könnte, da der Titel 105 Zeichen lang ist und die URL 55 plus App-Gutschrift ist. Also sollte es theoretisch möglich sein, den Titel zu verkürzen und dann gut hinzuzufügen, aber das passiert nie.
Also, was ist los? Wie führe ich einen Linkanhang mit NO
?
while ([twitterViewController setInitialText:[NSString stringWithFormat:@"%@ (via @SyllableApp)", titleToShare]])
= & gt;
while (![twitterViewController setInitialText:[NSString stringWithFormat:@"%@ (via @SyllableApp)", titleToShare]])
Da ist ein! im Zustand fehlt, so kürzen Sie den Pfosten, wenn es passt, nicht wenn es zu lang ist;)
Das Problem bei diesem Ansatz ist, dass er nur auf iOS6 funktioniert.
%Vor%ergibt unter iOS6 (NO) und iOS7 (YES) unterschiedliche Ergebnisse. Die Antwort auf dieses Verhalten stammt aus der Dokumentation von SLComposeViewController
%Vor%Wahrscheinlich lohnt es sich, entweder unterschiedliche Ansätze auf iOS6 und 7 zu haben oder die Länge ohne SLComposeViewController-Methode zu überprüfen.
Wie du schon sagtest, hast du ein "!" vermisst.
Und 140 Zeichen zählen ist die Begrenzung des Titels nur, URL nicht einschließend.So ist Ihr Titel 105 Zeichen lang, die weniger als 140 ist, sollte diese Methode JA zurückgeben.
Es gibt einen offenen Fehler mit Verbindungslängen , der nicht richtig berechnet wird (Radar: // 10469407) . Dies könnte zusammenhängen. Sie könnten versuchen, einen Tweet mit einem Link darin zu senden, um zu überprüfen, welcher URL-Kürzler verwendet wird (ich stelle mir vor, dass es t.co verwendet, aber ich könnte falsch liegen).
Tags und Links objective-c ios twitter slcomposeviewcontroller