3

一直在关注这个关于如何将 twitter 集成到您的应用程序中的精彩教程。我知道程序员在 iOS 5 之前还有其他方法可以集成 twitter,但我的问题是:

我的应用程序支持 iOS 3.0+,所以如果我只使用 iOS 5 的方式集成 twitter,这将如何影响不使用 iOS 5 的用户?它甚至对他们有用吗?

谢谢!

4

4 回答 4

5

如果您只允许 iOS 5 用户使用 Twitter,您可以检查 Twitter 是否可用:

// Don't forget to import Twitter!
#import <Twitter/Twitter.h>
....
if([TWTweetComposeViewController class] != nil) {
    // your code here
}

此外,请确保在添加 Twitter 框架时将其设置为可选。

于 2012-05-15T03:44:10.953 回答
4

不幸的是,官方 API 框架无法工作,因为 twitter 应用程序/集成仅在 iOS 5 中可用

一个好的解决方案是使用ShareKit,这是一个免费的 API,允许您集成 twitter、facebook 和其他社交网络支持。

于 2012-05-15T02:12:08.777 回答
2

您应该查看DETweetComposeViewController。我们就是为了这个目的而建造它的。它是 TWTweetComposeViewController 的 iOS4 兼容重新实现。

于 2012-05-15T03:23:07.187 回答
0

使用弱链接和如下代码:

 - (void)tweet
{
Class tweeterClass = NSClassFromString(@"TWTweetComposeViewController");

if(tweeterClass != nil) {   
    if([TWTweetComposeViewController canSendTweet]) {
        TWTweetComposeViewController *tweetViewController = [[TWTweetComposeViewController alloc] init];
        tweetViewController.completionHandler = ^(TWTweetComposeViewControllerResult result) {
            if(result == TWTweetComposeViewControllerResultDone) {

            }
            [self dismissViewControllerAnimated:YES completion:nil];
        };

        [self presentViewController:tweetViewController animated:YES completion:nil];
    } else {
#if !(TARGET_IPHONE_SIMULATOR)
        [self displayAlert:@"You can't send a tweet right now, make sure your device has an internet connection and you have at least one Twitter account setup."];
#else
        NSString *tweetString = [NSString stringWithFormat:@"http://mobile.twitter.com/home?status=%@%@", [self urlEncode:@"Check out this awesome pic: "] ,[self urlEncode:[_blobTweet.shortUrl absoluteString]]];
        NSURL *tweetURL = [NSURL URLWithString:tweetString];
        if ([[UIApplication sharedApplication] canOpenURL:tweetURL]) { 
            [[UIApplication sharedApplication] openURL:tweetURL]; 
        }
#endif
    }
} else {        
    // no Twitter integration could default to third-party Twitter framework

}
}

@end
于 2012-05-15T04:10:41.893 回答