1

我正在开发支持 iOS 5 和 6 的 iPhone 应用程序。我想在 Twitter 上分享图片,我发现的方法是使用 iOS 5 中引入的 Twitter 框架。

但是 TWRequest 在 iOS 6 中已被弃用,并被社交框架中的 SLRequest 取代,这在 iOS 5 中不可用。那么我该如何解决这个问题,因为 TWRequest 在 iOS 6 中已被弃用并且 SLRequest 在 iOS 5 中不受支持。任何线索......

4

1 回答 1

4

如果您打算使用 prebuiltSLComposeViewController以模态方式呈现视图以在 Twitter 上共享,您可以使用类似这样的东西

//Check for Social Framework availability (iOS 6)
if(NSClassFromString(@"SLComposeViewController") != nil){

    if([SLComposeViewController instanceMethodForSelector:@selector(isAvailableForServiceType)] != nil)
    {
        if ([SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter])
        {
            NSLog(@"service available");
            SLComposeViewController *composeViewController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
            [composeViewController setInitialText:@"Testing Continues"];
            [composeViewController addImage:[UIImage imageNamed:@"test.png"]];
            [self presentViewController:composeViewController animated:YES completion:nil];
        }
        else
        {
            NSLog(@"service not available!");
        }
    }
}

else{
// For TWTweetComposeViewController (iOS 5)  
    if ([TWTweetComposeViewController canSendTweet]) {
        TWTweetComposeViewController *tweetVC = [[TWTweetComposeViewController alloc] init];
        [self presentModalViewController:tweetVC animated:YES];
        [tweetVC setInitialText:@"testing app"];
    } 
}

否则,如果您想创建自己的请求以在 twitter 上共享,则在设备上管理用户帐户后,SLRequest根据需要创建一个

NSDictionary *message = @{@"status": @”Test message”};
NSURL *requestURL = [NSURL URLWithString:@"http://api.twitter.com/1/statuses/update.json"];

SLRequest *postRequest = [SLRequest 
            requestForServiceType:SLServiceTypeTwitter
                    requestMethod:SLRequestMethodPOST
                              URL:requestURL 
                       parameters:message];         
于 2013-02-27T07:15:28.747 回答