2012-07-16 72 views
3

我使用下面的代碼片段,使鳴叫在我的iOS 5應用程序:Twitter iOS API是否提供了確定推文是否成功的方法?

- (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. 通知他們的職位是成功並且很快就會在其Feed中顯示

回答

3

iOS Twitter賬戶中沒有辦法可以看到Tweet實際上已經發布在服務器上。但是,您可以分析TWTweetComposeViewControllerResult以查看鳴叫是否已成功完成撰寫,或者鳴叫是否已取消。

twitter.completionHandler = ^(TWTweetComposeViewControllerResult res) { 
    if (res == TWTweetComposeViewControllerResultDone) { 
     // Composed 
    } else if (res == TWTweetComposeViewControllerResultCancelled) { 
     // Cancelled 
    } 
    [self dismissModalViewControllerAnimated:YES]; 
}; 
0

嗯,其實,你只可以設置一個處理程序來調用,當用戶完成構成鳴叫:TWTweetComposeViewControllerCompletionHandler。這handler有一個單一的參數,表明用戶是否完成或取消撰寫推文。

您可以嘗試發送推文,並使其無法檢查結果代碼(幸運的是它被取消?)。

實現所需行爲的另一種替代方法是使用另一個API。

相關問題