Подскажите логин оповещения с помощью фреймворка Twitter в iOS5? - PullRequest
8 голосов
/ 12 марта 2012

Как вы все, наверное, знаете, начиная с iOS5 существует встроенная платформа Twitter, которая позволяет легко публиковать твиты из вашего приложения.

Есть ли способ вызвать предупреждение, которое перенаправляет пользователя в приложение настроек и запрашивает имя пользователя и пароль?

Я знаю, что могу решить проблему с помощью следующего кода:

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

Но это недокументированный код ..

Заранее спасибо

С уважением, Билли (Мой первый пост на SO)

Ответы [ 4 ]

8 голосов
/ 29 июня 2012

В iOS5.1 мы должны использовать TWTweetComposeViewController, чтобы показать диалоговое окно, так как яблоко отклоняет приложения, используя prefs: root = TWITTER.

Но мне не понравилось показывать экран твита и клавиатуру
поэтому я нашел способ их скрыть, но покажу всплывающий экран.

UPDATE: Apple одобрила мое приложение с помощью этого трюка.


enter image description here

    TWTweetComposeViewController *viewController = [[TWTweetComposeViewController alloc] init];

    //hide the tweet screen
    viewController.view.hidden = YES;

    //fire tweetComposeView to show "No Twitter Accounts" alert view on iOS5.1
    viewController.completionHandler = ^(TWTweetComposeViewControllerResult result) {
        if (result == TWTweetComposeViewControllerResultCancelled) {            
            [self dismissModalViewControllerAnimated:NO];
        }
    };
    [self presentModalViewController:viewController animated:NO];

    //hide the keyboard
    [viewController.view endEditing:YES];

    //this approach doesn't work since you can't jump to settings
//    [self dismissModalViewControllerAnimated:NO];
6 голосов
/ 12 марта 2012

Вам не нужно реализовывать это, если вы настроили интеграцию с Твиттером, чтобы сделать публикацию в Твиттере, и iOS обнаружит, что учетная запись Twitter не настроена, это сделает это автоматически для вас!

Это снимок экрана одного из моих приложений, работающих на моем iPhone 4S на iOS 5.1

. Удаление ссылок настроек связано с пользовательскими действиями разработчика, например, со ссылками на меню собственных настроек.Это не относится, потому что Twitter не только является встроенной функцией iOS 5, но и UIAlertView, который появляется, чтобы уведомить вас, не обрабатывается разработчиком, это автоматическая функция iOS.

enter image description here

2 голосов
/ 17 декабря 2012

Здесь я нашел путь:

Отображение пользовательского оповещения, если в настройках вашего устройства не настроена учетная запись Twitter:

    if (![TWTweetComposeViewController canSendTweet]) {
            UIAlertView *alertViewTwitter = [[[UIAlertView alloc] 
            initWithTitle:@"No Twitter Accounts" 
            message:@"There are no Twitter accounts configured. You can add or create a Twitter account in Settings." 
            delegate:self 
            cancelButtonTitle:@"Settings"
            otherButtonTitles:@"Cancel",nil] autorelease];

            [alertViewTwitter show];
   }


 - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

          if (buttonIndex==0) {
                 TWTweetComposeViewController *ctrl = [[TWTweetComposeViewController alloc] init];
                 if ([ctrl respondsToSelector:@selector(alertView:clickedButtonAtIndex:)]) {
                     [(id <UIAlertViewDelegate>)ctrl alertView:alertView
                             clickedButtonAtIndex:0];
                 }
                 [ctrl release];
          }
   }

Надеюсь, это будет иметь смысл:)

0 голосов
/ 12 марта 2012

Это невозможно, хотя он должен автоматически запрашивать у пользователя вход в систему, если пользователь еще не вошел в систему.

Начиная с iOS 5.1 эта функция была удалена, как видно здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...