Falsches Twitter-Ergebnis nach fehlgeschlagenem Sendeversuch

8

Wenn Sie TWTweetComposeViewController in IOS5 zum Verfassen und Senden eines Tweet verwenden, wird eine Fehlermeldung angezeigt, wenn der Tweet ein Duplikat ist. Der Tweet ist doppelt vorhanden und kann nicht gesendet werden, aber TWTweetComposeViewControllerCompletionHandler erhält immer noch einen Ergebniswert von TWTweetComposeViewControllerResultDone anstatt von TWTweetComposeViewControllerResultCancelled .

(Das kann auch in anderen Fällen passieren, nicht nur für doppelte Tweets - ich habe das nicht überprüft).

Dies macht es unmöglich, dem Benutzer nach einem erfolgreichen Senden eine Bestätigungsnachricht anzuzeigen, da der Handler das gleiche "Fertig" -Ergebnis erhält, egal ob der Sendevorgang erfolgreich war oder nicht.

Gibt es eine andere Möglichkeit zu überprüfen, ob der Sendevorgang tatsächlich erfolgreich war?

    
Amiram Stark 13.11.2011, 12:01
quelle

4 Antworten

3

Die Dokumentation für den completionHandler von TWTweetComposeViewController lautet folgendermaßen :

  

Der Handler verfügt über einen einzelnen Parameter, der angibt, ob der Benutzer abgeschlossen hat oder den Tweet nicht erstellt hat.

Der Completionhandler teilt Ihnen mit, ob der Benutzer den Tweet tatsächlich selbst fertiggestellt oder abgebrochen hat, unabhängig davon, ob er tatsächlich den Tweet gepostet hat.

Aktualisieren

Ich habe mich ein bisschen weiter damit befasst und es scheint, als ob der TWTweetComposeViewController eine jener Komfortklassen ist, die dem Entwickler die meiste Arbeit abnehmen, im Gegenzug dafür, dass der Entwickler nichts alleine machen darf. In diesem Fall hat der Entwickler keine Möglichkeit, die Fehler zu behandeln, die beim Senden des Tweets auftreten. Er muss sich stattdessen auf die iOS-Warndialoge verlassen, um den Benutzer zu informieren.

Sie können dies umgehen, indem Sie Salehs Methode verwenden, obwohl ich das nicht für sicher genug halte, um sie in einer tatsächlichen App zu verwenden. Siehe die Kommentare in seiner Antwort.

Eine andere Methode besteht darin, einen eigenen View-Controller zu implementieren, der die Komposition und das Senden von Tweets übernimmt. Sie können dies tun, indem Sie das Verfahren in der folgenden Stackoverflow-Antwort befolgen.

    
SpacyRicochet 27.06.2012 08:32
quelle
1

Überprüfen Sie die Warnmeldung. Wenn die Warnmeldung angezeigt wird, können Sie den Fehler erkennen. Ich denke, dass die Warnmeldung im Fenster hinzugefügt wird. Sie können die Anzahl der Unteransichten des Fensters überprüfen. Wenn diese erhöht werden, wenn die Delegate-Funktion aufgerufen wird, wissen Sie, dass der Fehler aufgetreten ist.

    
Saleh 27.06.2012 08:36
quelle
-1

Ist das nicht nur ein View-Controller? Das Ergebnis des View-Controllers ist in Ordnung, da es angibt, was mit dem View-Controller passiert ist ( erledigt ).

Mit was senden Sie Ihren Tweet? In dieser Bibliothek sind wahrscheinlich einige Dinge implementiert, mit denen Sie feststellen können, ob Ihr Tweet erfolgreich gesendet wurde oder nicht.

    
Antwan van Houdt 13.11.2011 12:17
quelle
-1
%Vor%

das könnte dir helfen. Wenn der URL-Antwortcode 200 ist, können Sie sagen, dass Text getwittert wird.

    
GameLoading 28.06.2012 12:28
quelle

Tags und Links