Viber WhatsApp Telegram

Быстрая отправка сообщений в мессенджеры

Бывает, надо сделать кнопку «Поделиться» для определенного мессенджера. Самый быстрый способ — это url-схемы. Можно просто вызвать [[UIApplication sharedApplication] openURL:url];  для правильно сконфигурированной ссылки и установленный на телефоне мессенджер примет переданный текст для дальнейшей обработки.

Сейчас покажу, как это сделать для WhatsApp, Viber и Telegram.Для начала определим формат сообщения. Пусть это будет текст и ссылка:

Найти формат url для каждого приложения не составляет труда. Обычно справку публикуют на официальном сайте, например, так выглядит справка WhatsApp.

Как видно, для подстроки с содержимым необходимо экранировать символы.

В Foundation есть набор методов для обработки строк. Возьмем метод  -stringByAddingPercentEncodingWithAllowedCharacters:  и набор символов  [NSCharacterSet URLQueryAllowedCharacterSet] . Но есть один нюанс, раз у нас в подстроке содержится shareUrl, то нужно из набора изъять некоторые символы:  [set removeCharactersInString:@":/?&="]

Теперь просто соберем всё части вместе:

И итоговый метод может выглядеть так:

Автор

Егор