Twitter 登录成功后从 Twitter 原生应用程序重定向到 iOS 应用程序

Redirect from twitter native app to iOS app after twitter login success

我必须使用 Twitter 帐户登录我的 iOS 应用程序。
案例 1: 如果 Twitter 应用程序存在于 iPhone 我需要登录到 Twitter 应用程序,登录成功后,我需要重定向回我的应用程序。
案例 2: 如果 iPhone 中没有 twitter 应用程序,那么我需要通过默认浏览器登录到 twitter 应用程序。

我正在使用 STTwitter 框架。 案例 2 对我来说工作正常。
以下代码用于在浏览器中打开 Twitter 应用程序

self.twitter = [STTwitterAPI twitterAPIWithOAuthConsumerKey:kCONSUMER_KEY
                                             consumerSecret:kCONSUMER_SECREAT];



[_twitter postTokenRequest:^(NSURL *url, NSString *oauthToken) {
    NSLog(@"-- url: %@", url);
    NSLog(@"-- oauthToken: %@", oauthToken);

    [[UIApplication sharedApplication] openURL:url];

} authenticateInsteadOfAuthorize:NO
                forceLogin:@(YES)
                screenName:nil
             oauthCallback:@"testapp://twitter_access_tokens/"
                errorBlock:^(NSError *error) {
                    NSLog(@"-- error: %@", error);

                }];

要打开推特应用,可以使用下面的代码

    NSURL *twitterURL = [NSURL URLWithString:@"twitter://"];

    if ([[UIApplication sharedApplication] canOpenURL:twitterURL]) {
        [[UIApplication sharedApplication] openURL:twitterURL];
    }

如果iPhone中有twitter app,以上几行代码可以打开twitter app,但是twitter登录成功后如何重定向回我的app。

请任何人帮助我。

一旦控制权从您的应用程序中移出,就无法以编程方式将用户带回来。他们需要手动返回。话虽如此,请浏览苹果提供的 Twitter api,因为 iPhone 可以在没有他们的应用程序的情况下登录 Twitter。你应该能够完成你想要的,而无需他们离开你的应用程序进入 Twitter 应用程序或网站。

Twitter.app 使用 iOS 设置中定义的 Twitter 帐户。

此外,即使未安装 Twitter.app,也可以在 iOS 设置中定义帐户。

所以,我认为情况 1 您不需要打开 Twitter.app。

您可以使用第一个可用帐户简单地实例化 STTwitterAPI

+ (instancetype)twitterAPIOSWithFirstAccount;

或者如果您愿意,请提供特定帐户:

+ (instancetype)twitterAPIOSWithAccount:(ACAccount *)account;