Android-приложение
Notifly для Android — нативный клиент, который держит постоянное
WebSocket-соединение с сервером и кладёт каждое новое сообщение прямо в шторку
уведомлений за доли секунды. Сервер зашит (https://api.notifly.ru), поэтому
при входе вы вводите только email и пароль — поля адреса сервера в UI нет.
Помимо приёма push-ов, приложение позволяет отвечать на вопросы прямо из уведомления, гасить эскалацию одной кнопкой, смотреть мониторы и heartbeat-ы, искать по истории и открывать встроенную админку, где можно создавать каналы и мониторы — не выходя из приложения.
Установка
Заголовок раздела «Установка»| Что | Значение |
|---|---|
| Скачать | notifly.ru/download/notifly.apk |
| Текущая версия | в файле /download/version.json (поле versionName) — по нему же приложение ищет обновления |
| Требования | Android 8.0 или новее (API 26+) |
| Магазины | В Google Play, RuStore и F-Droid приложения нет — только APK с сайта |
applicationId | com.github.notifly |
Как установить:
- Откройте ссылку на APK на телефоне и скачайте файл.
- Откройте скачанный файл. Android попросит разрешить установку из этого источника (браузера или файлового менеджера) — разрешите: пункт обычно называется «Установка неизвестных приложений».
- Подтвердите установку и откройте приложение.
Обновления приложение проверяет само: не чаще раза в 6 часов оно сверяется с
version.json на сайте и, если вышла новая версия, показывает уведомление со
ссылкой на свежий APK. Установить обновление молча Android не позволяет — нужно
подтвердить, как при первой установке.
Вход и регистрация
Заголовок раздела «Вход и регистрация»После установки войдите тем же email и паролем, что и в app.notifly.ru. Нет аккаунта — нажмите «Создать аккаунт» прямо на экране входа: после регистрации придёт письмо со ссылкой подтверждения, перейдите по ней и войдите. «Забыли пароль?» открывает в браузере страницу восстановления.
- Двухфакторная аутентификация. Если в аккаунте включена 2FA, приложение спросит код из приложения-аутентификатора или код восстановления.
- Лимит устройств. Если у аккаунта уже есть устройства, приложение предложит переподключить одно из них (например, после переустановки) или зарегистрироваться как новое устройство. Если лимит тарифа исчерпан, удалите лишние устройства в веб-админке (раздел «Устройства»).
Уведомления
Заголовок раздела «Уведомления»- Push в шторку через WebSocket. Приложение держит постоянное соединение в фоновой службе и показывает уведомление сразу, как сообщение попадает в канал, — даже когда само приложение закрыто. Условие одно: Android не должен «усыпить» службу (см. ниже). После обрыва связи приложение переподключается и догружает пропущенное. Google Firebase (FCM) для доставки не используется.
- Свой переход у каждого уведомления. Тап открывает именно это сообщение —
канал с прокруткой к нему и подсветкой. Если в сообщении задан
client::notification.click.url(см. Доп. поля), открывается эта ссылка. Уведомления группируются по каналам. - Картинка в уведомлении — из
client::notification.bigImageUrl.
Кнопки в уведомлении
Заголовок раздела «Кнопки в уведомлении»| Сообщение | Кнопки |
|---|---|
| Обычное (или вопрос уже отвечен/истёк) | Прочитано |
| Вопрос с одним выбором и 1–3 вариантами | кнопки вариантов (и Прочитано, если вариантов меньше трёх) |
| Открытый вопрос | Ответить — ввод текста прямо в шторке, и Прочитано |
| Мультивыбор, форма или больше трёх вариантов | Ответить — открывает приложение на этом вопросе, и Прочитано |
Прочитано отмечает сообщение прочитанным на сервере — это останавливает эскалацию (SMS, звонки, письма, чаты). После ответа на вопрос приложение тоже отмечает сообщение прочитанным. Действия выполняются в фоне и доходят до сервера даже при плохой связи: приложение повторяет попытку, а если так и не удалось — сообщает об этом отдельным уведомлением.
Режим будильника
Заголовок раздела «Режим будильника»Для важного канала можно включить режим будильника (настройки канала в приложении): вместо обычного уведомления на весь экран, в том числе поверх экрана блокировки, открывается «будильник» — со звуком по кругу и вибрацией. Кнопка подтверждения на этом экране отмечает сообщение прочитанным и тем самым гасит эскалацию. На Android 14+ приложение попросит разрешение на полноэкранные уведомления.
Приоритеты
Заголовок раздела «Приоритеты»У каждого сообщения есть приоритет от 0 до 10. Он определяет, насколько заметным будет уведомление:
| Приоритет | Важность уведомления в Android |
|---|---|
0 | минимальная: без звука, свёрнуто в шторке |
1–3 | низкая: без звука |
4–7 | обычная: со звуком |
8–10 | высокая: со звуком и всплывающим уведомлением |
Приоритет задаётся при отправке сообщения (см. Отправка сообщений)
или берётся из defaultPriority канала. Под каждый уровень приложение создаёт
отдельный канал уведомлений Android — звук и вибрацию можно тонко настроить в
системных настройках, а в настройках приложения — выбрать звук для каждого
уровня.
Тихие часы и окна обслуживания
Заголовок раздела «Тихие часы и окна обслуживания»- Тихие часы настраиваются прямо в приложении (Настройки → Тихие часы) — это та же настройка аккаунта, что и в веб-админке. В тихие часы сообщения с приоритетом ниже порога приходят без звука, вибрации, всплывающего окна и режима будильника, с пометкой «Тихие часы». Приложение хранит копию настроек и соблюдает тишину и без сети.
- Сообщения каналов в активном окне обслуживания
приходят беззвучно с пометкой об обслуживании — сервер помечает их полем
notifly::delivery.
Настройки канала
Заголовок раздела «Настройки канала»Для каждого канала в приложении можно:
- заглушить канал на этом устройстве (пункт меню канала) — уведомления с него перестают приходить на этот телефон, доступ к каналу и лента остаются; остальные ваши устройства получают сообщения как раньше;
- включить режим будильника, выбрать звук, вибрацию и важность уведомлений.
Лента и экраны
Заголовок раздела «Лента и экраны»- Лента сообщений с фильтром по каналам (с подканалами). Сообщение удаляется свайпом — с возможностью отменить; есть «удалить все» и «прочитать все».
- Поиск. Сначала ищет по уже загруженным сообщениям, затем — по всей истории на сервере, в выбранном канале вместе с подканалами.
- Вопросы (Ask) отображаются в ленте интерактивно: кнопки вариантов, мультивыбор с флажками, поле для текста и формы с полями разных типов. Видно, отвечен вопрос, отменён или истёк.
- Скриншоты браузерных проверок — если browser-монитор упал со скриншотом, картинка видна прямо в ленте.
- Мониторы — нативный экран со всеми семействами мониторов: протокольные, HTTP, контент, порты, сценарии, браузерные и heartbeat-ы. Фильтр «Все / Проблемы / На паузе», пауза и возобновление прямо из списка.
- Heartbeats канала — список с подканалами и детальный экран: статус, аптайм за 24 ч / 7 д / 30 д и лог последних пингов. Создание и редактирование — в веб-админке.
- Сводка тарифа в шапке меню: тариф, сколько событий израсходовано сегодня и сколько устройств подключено из лимита.
- Встроенная админка. Разделы, которых нет в нативном виде (каналы, устройства, API-токены, метрики, статус-страницы, интеграции, профиль, тарифы), открываются во встроенном WebView — это та же веб-админка, вход в неё не нужен.
- Отправка из приложения. Из меню можно отправить сообщение или вопрос в свой канал, а через системное «Поделиться» — отправить в канал текст или ссылку из любого приложения.
- Подтверждение входа. Если в аккаунте включён метод 2FA «Notifly mobile», при входе в веб-админку телефон покажет уведомление, а экран «Подтвердить вход» попросит ввести двузначный код с экрана входа (см. Безопасность аккаунта).
- Логи соединения — помогают понять, почему (не) приходят уведомления.
Без сети
Заголовок раздела «Без сети»Приложение хранит последние сообщения (до 500, по 100 на канал) и список каналов в локальном кэше. Лента открывается сразу из кэша, а без связи показывается баннер «Нет связи · данные от ЧЧ:ММ». Если приложение запускается без сети, оно всё равно открывается и подключится, как только связь появится. Кэш очищается при выходе из аккаунта.
Интерфейс переведён на 47 языков; язык можно выбрать в настройках приложения или оставить системный. Часть новых экранов пока доступна только на русском и английском.
Безопасность
Заголовок раздела «Безопасность»- Токен устройства хранится зашифрованным ключом из Android Keystore.
- Соединения — только по HTTPS; резервное копирование данных приложения отключено.
- Устройство видно и отзывается в веб-админке в разделе «Устройства». При выходе из аккаунта приложение удаляет своё устройство на сервере.
Чтобы уведомления приходили стабильно
Заголовок раздела «Чтобы уведомления приходили стабильно»Android по умолчанию агрессивно «усыпляет» долго работающие приложения, чтобы экономить батарею. Если система выгрузит Notifly из памяти, WebSocket порвётся и push-ы перестанут приходить.
- Отключите оптимизацию батареи для Notifly. При первом запуске приложение само предложит это сделать; вручную: Настройки → «Оптимизация батареи» → Notifly → не оптимизировать. Советы под конкретного производителя — на dontkillmyapp.com.
- Фоновое уведомление о соединении. Notifly держит постоянное уведомление службы соединения с минимальной важностью. Его можно скрыть в системных настройках уведомлений приложения — само соединение от этого не пострадает.
После перезагрузки телефона и обновления приложения служба соединения запускается автоматически.
Связанные страницы
Заголовок раздела «Связанные страницы»- Отправка сообщений — как и с каким приоритетом слать push.
- Вопросы в каналах (Ask) — вопросы, на которые можно ответить из шторки.
- Доставка и эскалация — что «Прочитано» останавливает.
- Тихие часы и окна обслуживания.
- iOS-приложение — клиент для iPhone и iPad (бета, сборка из исходников).