3

次のコード スニペットを使用して、iOS 5 アプリケーションでツイートを作成しています。

- (IBAction)postToTwitterClicked:(id)sender 
{
    if ([TWTweetComposeViewController canSendTweet])
    {
        TWTweetComposeViewController *tweetSheet = [[TWTweetComposeViewController alloc]init];
        [tweetSheet setInitialText:@"Some sample message here"];
        [tweetSheet addURL:[NSURL URLWithString:@"http://myURL"]];

        [self presentModalViewController:tweetSheet animated:YES];
    }
    else 
    {
        UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"Unable to tweet"
                                                     message:@"Please ensure that you have at least one twitter account setup and have internet connectivity. You can setup a twitter account in the iOS Settings > Twitter > login."
                                                    delegate:self 
                                           cancelButtonTitle:@"OK" 
                                           otherButtonTitles:nil];
        [av show]; 
    }
}

これは問題なく動作しますが、ユーザーが実際にツイートを投稿したこと、または問題があったことをどのように知ることができますか?

これはデリゲートを実装していないため、オーバーライドできる「onError」メソッドはありません。

ユーザーがツイートを正常に投稿したかどうかを知りたいので、次のような行動をとることができます

  1. ボタンを無効にして、二度と操作できないようにする
  2. 投稿が成功したことを通知し、まもなくフィードに表示されます
4

2 に答える 2

3

iOS の Twitter API では、ツイートが実際にサーバーに投稿されたことを確認する方法はありません。ただし、 を分析しTWTweetComposeViewControllerResultて、ツイートの作成が正常に完了したかどうか、またはツイートがキャンセルされたかどうかを確認できます。

twitter.completionHandler = ^(TWTweetComposeViewControllerResult res) {
    if (res == TWTweetComposeViewControllerResultDone) {
         // Composed
    } else if (res == TWTweetComposeViewControllerResultCancelled) {
        // Cancelled
    }
    [self dismissModalViewControllerAnimated:YES];
};
于 2012-07-16T09:12:51.770 に答える
0

実際には、ユーザーがツイートの作成を完了したときに呼び出すハンドラーのみを設定できますTWTweetComposeViewControllerCompletionHandler。このハンドラーには、ユーザーがツイートの作成を終了したかキャンセルしたかを示す単一のパラメーターがあります。

ツイートを送信して、結果コードのチェックを失敗させることができます (幸いなことに、キャンセルされましたか?)。

目的の動作を実現する別の方法は、別の API を使用することです。

于 2012-07-16T09:16:40.467 に答える