0

ios5.0でtwitterフレームワークが追加されたので、私はそのクラスを使用していますTWTweetComposeViewController

if([TWTweetComposeViewController canSendTweet])
    {
        NSLog(@"can send tweet");
    }
    else{
         NSString *message = @"The application cannot send a tweet at the moment. This is because it cannot reach Twitter or you don't have a Twitter account associated with this device.";
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Oops" message:message delegate:nil cancelButtonTitle:@"Dismiss" otherButtonTitles:nil];
    [alertView show];
    }

このステップでは、ユーザーにTwitterのログインページを表示する必要があります。そのため、ユーザーを設定にリダイレクトしてユーザーにログインする必要があるかどうか混乱していますか?

はいの場合、このコードは機能していません

     NSURL *twitterURL = [NSURL URLWithString:@"prefs:root=TWITTER"];
    [[UIApplication sharedApplication] openURL:twitterURL];

また、これがios6で機能しない場所をいくつか読んだことがあります。では、ユーザーに少しの間ログインさせ、ツイートを直接送信しないようにするにはどうすればよいですか。今、私はユーザーにログインさせたいだけです。

私もこの質問を参照します それはios6でうまく機能していますが、その場合、私はios5.1をどのように処理しますか?

どんな助けでもありがたいです....

4

1 に答える 1

2

私は以下の条件付きコーディングでそれを理解しました..私はこの方法しか得られませんでした。他に方法があれば教えてください。

if (SYSTEM_VERSION_LESS_THAN(@"6.0")) {
        if(SYSTEM_VERSION_EQUAL_TO(@"5.0"))
        {
            NSURL *twitterURL = [NSURL URLWithString:@"prefs:root=TWITTER"];
            [[UIApplication sharedApplication] openURL:twitterURL];
        }else{
            UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"No_Tw", nil) message:NSLocalizedString(@"No_TW_Ac", nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"Button_Ok", nil) otherButtonTitles:nil, nil];
            [alertView show];
        }
    }

    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0")) {
        SLComposeViewController *tweetSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeTwitter];
        tweetSheet.view.hidden=TRUE;

        [self presentViewController:tweetSheet animated:NO completion:^{
            [tweetSheet.view endEditing:YES];
        }];
    }

iOSが5.0の場合、Twitterのログインにリダイレクトされます。それ以外の場合は、設定に移動してログインするようにユーザーにアラートが表示されます。また、iOS 6.0以降でSLComposeViewControllerは、正常に動作しています。

于 2013-03-15T04:11:16.443 に答える