一直在关注这个关于如何将 twitter 集成到您的应用程序中的精彩教程。我知道程序员在 iOS 5 之前还有其他方法可以集成 twitter,但我的问题是:
我的应用程序支持 iOS 3.0+,所以如果我只使用 iOS 5 的方式集成 twitter,这将如何影响不使用 iOS 5 的用户?它甚至对他们有用吗?
谢谢!
一直在关注这个关于如何将 twitter 集成到您的应用程序中的精彩教程。我知道程序员在 iOS 5 之前还有其他方法可以集成 twitter,但我的问题是:
我的应用程序支持 iOS 3.0+,所以如果我只使用 iOS 5 的方式集成 twitter,这将如何影响不使用 iOS 5 的用户?它甚至对他们有用吗?
谢谢!
如果您只允许 iOS 5 用户使用 Twitter,您可以检查 Twitter 是否可用:
// Don't forget to import Twitter!
#import <Twitter/Twitter.h>
....
if([TWTweetComposeViewController class] != nil) {
// your code here
}
此外,请确保在添加 Twitter 框架时将其设置为可选。
不幸的是,官方 API 框架无法工作,因为 twitter 应用程序/集成仅在 iOS 5 中可用
一个好的解决方案是使用ShareKit,这是一个免费的 API,允许您集成 twitter、facebook 和其他社交网络支持。
您应该查看DETweetComposeViewController。我们就是为了这个目的而建造它的。它是 TWTweetComposeViewController 的 iOS4 兼容重新实现。
使用弱链接和如下代码:
- (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