如何将图片附加到 twitter 帖子上,就像照片应用内置的iPhone一样? 如果任何机构有一些样本代码,那将是一个很大的帮助。 感谢。
答案 0 :(得分:5)
其他答案建议TWTweetComposeViewController
,但是如果您可以避免使用此类,那么它现在已在iOS 6中弃用,
请参见此处:TWTweetComposeViewController deprecated in IOS6
来自Apple自己,WWDC 2012, session 306 presentation PDF:
Twitter框架
•Twitter框架已弃用
•请勿使用TWTweetComposeViewController
现在要使用Twitter,您应该使用SLComposeViewController
框架的Social
类,它的用法几乎与TWTweetComposeViewController
相同。
您可能需要支持iOS 5,在这种情况下,您没有其他选项可以使用TWTweetComposeViewController
类,但您应该努力检查SLComposeViewController
并使用它,如果它可用,因为这将节省您在不久的将来支持iOS 5的时间和精力,TWTweetComposeViewController
类真的可能会消失。如果您现在为了简单而依赖Twitter框架,因为它可以在iOS 5和6上运行,那么您是短视的,并且将在以后的某个时间出现问题,只需要几行就可以了这意味着您不必担心未来的iOS SDK版本。
您应该导入Twitter.framework
和Social.framework
,将它们标记为可选导入(不是必需的)。
示例代码:
UIImage *myImage = [...]; // an image
if( NSClassFromString(@"SLComposeViewController") ){
// We have the Social framework in our iOS system
// iOS 6 and later will use this
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]){
SLComposeViewController *twitterCompose = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
[twitterCompose addImage:myImage]; // Adding your UIImage
twitterCompose.completionHandler = ^(SLComposeViewControllerResult result){
// Handle result, dismiss view controller
[self dismissViewControllerAnimated:YES
completion:nil];
};
[self presentViewController:twitterCompose
animated:YES
completion:nil];
}else{
// the user does not have Twitter set up
}
}else if( NSClassFromString(@"TWTweetComposeViewController") ){
// We don't have the Social framework, work with the Twitter framework
// iOS 5 only will use this
if( [TWTweetComposeViewController canSendTweet] ){
TWTweetComposeViewController *twitterCompose = [[TWTweetComposeViewController alloc] init];
[twitterCompose addImage:myImage];
twitterCompose.completionHandler = ^(TWTweetComposeViewControllerResult result){
// Handle result, dismiss view controller
[self dismissViewControllerAnimated:YES
completion:nil];
};
[self presentViewController:twitterCompose
animated:YES
completion:nil];
}else{
// the user hasn't go Twitter set up on their device.
}
}else{
// Wow you're going retro with this app,
// you must be on iOS 4 if you ever get here...
}
答案 1 :(得分:0)
我在这里如何使用它:
NSLog(@"Ready to Tweet.");
TWTweetComposeViewController *tweetComposer = [[TWTweetComposeViewController alloc] init];
[tweetComposer setInitialText:[NSString stringWithFormat:@"My message"]];
[tweetComposer addImage:[UIImage imageNamed:@"114x114"]];
[tweetComposer addURL:[NSURL URLWithString:@"http://myPage"]];
tweetComposer.completionHandler = ^(TWTweetComposeViewControllerResult result){
if(result == TWTweetComposeViewControllerResultDone){
NSLog(@"Tweeted.");
} else if(result == TWTweetComposeViewControllerResultCancelled) {
NSLog(@"Cancelled.");
}
[self.navigationController dismissViewControllerAnimated:YES completion:nil];
};
[self presentModalViewController:tweetComposer animated:YES];
答案 2 :(得分:0)
如果您使用的是ios 5.0,则可以直接发布图像
添加Framwork twitter.framework
导入Twitter / TWTweetComposeViewController.h
-(void)postToTwittert
{
Class TWTweetComposeViewControllerClass = NSClassFromString(@"TWTweetComposeViewController");
if (TWTweetComposeViewControllerClass != nil) {
if([TWTweetComposeViewControllerClass respondsToSelector:@selector(canSendTweet)]) {
TWTweetComposeViewController *twitter = [[TWTweetComposeViewController alloc] init];
[twitter setInitialText:@"text"];
[twitter addImage:[UIImage imageNamed:@"imagename"]];
[twitter addURL:[NSURL URLWithString:@"http://www.google.com"]];
[self presentViewController:twitter animated:YES completion:nil];
twitter.completionHandler = ^(TWTweetComposeViewControllerResult res) {
if(res == TWTweetComposeViewControllerResultDone)
{
NSLog(@"success for twitter post");
}
else if(res == TWTweetComposeViewControllerResultCancelled)
{
UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"Canceled" message:@"Your Tweet was not posted" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}
[self dismissModalViewControllerAnimated:YES];
};
}
}
}
将此功能称为推文帖子
并进行您想要的适当更改..
祝你好运..
答案 3 :(得分:0)
我现在只使用UIActivityViewController
发布到Twitter。
UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:@[@"Default Text", [UIImage imageNamed:@"imageName"]] applicationActivities:nil];
[self presentViewController:controller animated:YES completion:nil];
这将呈现一个控制器,用户可以决定做什么(发布到Twitter,发布到Facebook等...)
然后使用系统推文表等来完成它。
您不必提供默认文字。无论如何,这可以被覆盖。
哦,此外,没有框架需要。