Содержание
В этой статье рассмотрим быстрый метод отправки твита из своего приложения. В iOS 5 это делается действительно быстро. В прошлых версиях iOS приходилось прибегать к помощи сторонних компонет, а теперь все доступно «из коробки».
Для того, чтобы отправить твит из приложения пользователь должен в настройках iPhone/iPad ввести данные Twitter. На твиты из приложения действует ограничение, что и на все остальные — 140 символов. К твиту мы можем прикреплять картинки и ссылки. Ну что ж, приступим.
Подготовка
Для начала создадим проект «Single view application»:
Нам нужно добавить Twitter.framework в проект. Откройте свойства проекта. В настройках Target выберите «Build Phases», а затем раскройте ветку «Link Binary With Libraries».
Нажмите «+» и в поле поиска введите «Twitter», добавьте Twitter.framework:
Добавим в файл ViewController.h:
#import
Проверка
Добавим кнопку на наш ViewController. Назначим ей тайтл, к примеру, «Share». Повесим на нее обработчик и назовем его (в исходном коде, который прикриплен к статье, это сделано через Xib):
- (IBAction)shareButtonTouched:(id)sender { }
Перед отправкой твита нужно проверить можно ли сделать это с данного устройства. У класса TWTweetComposeViewController есть статический метод canSendTweet, который возвращает YES — если твитить можно, NO — если нельзя. В обработчике кнопки первым делом реализуем проверку:
- (IBAction)shareButtonTouched:(id)sender {
if ( ! [TWTweetComposeViewController canSendTweet] ) {
UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"Твиттер" message:@"К сожалению ваша учетная запись твиттера не настроена. Вы можете сделать это в настройках iPhone." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles: nil];
[alert show];
[alert release];
return;
}
}
Если вы запустите этот проект в симуляторе, то увидите следующую картину:
Но не надо огорчаться! Настроить Твиттер можно и в симуляторе! Свернем наже приложение в симуляторе, найдем «Настройки», откроем. Находим Твиттер и настраиваем свою учетную запись.
Теперь запустим проект и убедимся, что сообщение о невозможности отправки твита не появляется.
Отправка твита
Твит можно отправить только с согласия пользователя, т.е. пользователь сам нажимает кнопку «Отправить». Для того, чтобы просто показать диалог ввода твита нужно просто создать TWTweetComposeViewController и показать его ( допишите в метод shareButtonTouched: ):
TWTweetComposeViewController* twitterController = [[TWTweetComposeViewController alloc] init];
[self presentModalViewController:twitterController animated:YES];
[twitterController release];
Запустим и нажмем на кнопку «Share»:
Опции отправки твита
Мы можем предложить пользователю отправить твит с уже заданным текстом. Для этого нужно вызвать метод setInitialText: и передать в него нужный текст твита, например:
TWTweetComposeViewController* twitterController = [[TWTweetComposeViewController alloc] init];
[twitterController setInitialText:@"Привет, @idevby!"];
[self presentModalViewController:twitterController animated:YES];
[twitterController release];
Так же мы можем добавить ссылку и картинку. Для этого существуют методы addImage: и addURL: :
TWTweetComposeViewController* twitterController = [[TWTweetComposeViewController alloc] init];
[twitterController setInitialText:@"Привет, @idevby!"];
[twitterController addURL:[NSURL URLWithString:@"http://idev.by"]];
[twitterController addImage:[UIImage imageNamed:@"idev1.png"]];
[self presentModalViewController:twitterController animated:YES];
[twitterController release];
Картинка idev1.png должна лежать в вашем проекте (вы найдете ее в исходниках после статьи). Вот что получим:
Вот какой вышел твит:
Все три перечисленных метода возвращают YES или NO в зависимости от результата операции.
Проверка результата
Мы можем проверять результат — отрпавили ли твит или нажали кнопку «Отмена».
[twitterController setCompletionHandler:^(TWTweetComposeViewControllerResult result){
// проверка результата
if ( result == TWTweetComposeViewControllerResultDone ) {
// твит отправили
} else {
// твит не отправили
}
}];
На этом все. Ссылку на исходники ищите ниже.
Исходники вы можете загрузить тут
Последние статьи
-
Audio Unit в iOS. Часть 3, накладываем эффект Delay
-
Audio Unit в iOS. Часть 2, строим граф и проигрываем файлы
-
Audio Unit в iOS. Часть 1, введение.
-
Используем Emoji в своих приложениях
-
Как вводить в UITextField только цифры?
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: