TGViewer
Мобильный трудоголик Мобильный трудоголик @hardworkerit · 1.64K subscribers
Post #310 1.06K
🔢 Как добавить текстовый ввод прямо в push-уведомления iOS.

Всем привет! Сегодня разберем одну из мощных, но часто упускаемых из виду возможностей iOS - текстовый ввод прямо из уведомления. Представьте: пользователь получает сообщение и может сразу ответить, не открывая приложение. Это не магия, а встроенный механизм платформы, который открывает новые сценарии взаимодействия.

Большинство приложений используют уведомления как односторонний канал: показали сообщение -> нажали -> перешли в приложение. Но iOS уже несколько лет позволяет превращать пуши в интерактивные интерфейсы. Помимо стандартных кнопок, система поддерживает поле для ввода текста - идеально для быстрых ответов, подтверждений или простых команд.


Философия категорий:


Ключевое понятие здесь: категория уведомлений (UNNotificationCategory). Это не просто техническая группировка, а смысловая. Категория определяет, какие действия доступны для конкретного типа уведомлений. Чат, напоминание, системное событие - у каждого свой набор возможных реакций.


// Определяем действие с текстовым полем
let quickReplyAction = UNTextInputNotificationAction(
identifier: "QUICK_REPLY",
title: "Ответить",
options: [],
textInputButtonTitle: "Отправить",
textInputPlaceholder: "Ваш ответ"
)

// Создаем категорию для сообщений чата
let chatCategory = UNNotificationCategory(
identifier: "CHAT_MESSAGE",
actions: [quickReplyAction],
intentIdentifiers: [],
options: []
)

// Регистрируем категорию в системе
UNUserNotificationCenter.current().setNotificationCategories([chatCategory])



Как сообщить системе, какое уведомление показать:

Категория - это шаблон. Чтобы она сработала, нужно указать ее идентификатор при создании самого уведомления:


let content = UNMutableNotificationContent()
content.title = "Новое сообщение"
content.body = "Привет! Как дела?"
content.categoryIdentifier = "CHAT_MESSAGE" // Ключевая связка


Теперь, когда это уведомление появится, система автоматически добавит к нему кнопку «Ответить» с текстовым полем.


Обработка введенного текста:


func userNotificationCenter(
_ center: UNUserNotificationCenter,
didReceive response: UNNotificationResponse,
withCompletionHandler completionHandler: @escaping () -> Void
) {
if response.actionIdentifier == "QUICK_REPLY", let textResponse = response as? UNTextInputNotificationResponse {
let userText = textResponse.userText
// Отправляем текст на сервер, сохраняем локально и т.д.
processQuickReply(userText)
}

completionHandler()
}



Ограничения и особенности:

🔵Нельзя кастомизировать UI: поле ввода и кнопка - системные, их внешний вид определяется iOS.

🔵Требуется разрешение на уведомления: без requestAuthorization функция не работает.

🔵Работает только с категориями: простые уведомления без categoryIdentifier не поддерживают текстовый ввод.

🔵Лимит на количество действий: вместе с текстовым можно добавить еще до 3 обычных действий.

🔵Фокус на кратковременные сценарии: система не предназначена для длинных текстов - это инструмент для быстрых реакций.


🔗 Ссылка на подробную статью


💡 Вывод:

Добавление текстового ввода в уведомления - это шаг к тому, чтобы сделать пуши не просто напоминаниями, а полноценными точками взаимодействия. Это меняет парадигму: вместо «уведомить и ждать открытия приложения» мы получаем «уведомить и сразу получить ответ».

UNTextInputNotificationAction - это не просто техническая деталь, а инструмент для сокращения пути пользователя к цели. В мире, где внимание - самый ценный ресурс, возможность быстро выполнить действие в один тап может стать реальным конкурентным преимуществом.


➡️ Подписаться на канал
Мобильный трудоголик
  • 🔥 20
  • 👍 10
  • ❤ 5
  • 🙏 1
  • 🤝 1
More from @hardworkerit
  1. Oct 4, 2026🔢 SwiftUI: определение угла раскрытия iPhone Duo. В iOS 27.1 появился модификатор .onHing…
  2. Oct 2, 2026👣 Архитекторы, тестировщики и кодеры. Создаем мультиагентную команду Разработка с ИИ-аген…
  3. Oct 1, 2026🔢 Работа с Picture-in-Picture в iOS. Picture-in-Picture - системная функция iOS, которая…
  4. Sep 29, 2026🔢 Управление тулбарами на iPhone Duo. На iPhone Duo элементы управления навигацией, дейст…
  5. Sep 27, 2026🔢 Новые возможности Hashable в Swift 6.4 В Swift 6.4 добавили Hashable для нескольких тип…
  6. Sep 25, 2026🔢 Приватные свойства больше не ломают memberwise инициализатор в Swift 6.4 Swift автомати…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →