В этой статье рассмотрим быстрый метод отправки твита из своего приложения. В 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 только цифры?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *