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 回答