Push Receiver
Описание приложения
Приложение позволяет принимать и обрабатывать push-уведомления. Оно может быть использовано и как пример взаимодействия с API (получение и отображение уведомлений, запуск приложения из фона и переключение режима интерфейса пользователя), и в утилитарных целях для тестирования и отладки инфраструктуры.
При получении уведомления от push-сервера первым шагом является проверка того, запущен ли в данный момент PushReceiver
.
Если он не запущен, значит, он работает в фоновом режиме (без графического интерфейса).
Далее все уведомления, доставляемые на устройство, принимаются через
API Push-daemon
и для каждого из них создается графическое представление с помощью Notifications API
.
Если приложение работает в фоновом режиме и для него не поступало уведомлений в течение некоторого времени,
то приложение выключается. Графическое представление уведомлений может быть отображено в виде всплывающего
окна или помещено в шторку уведомлений. Нажатие на любое из них приводит к запуску приложения с
графическим интерфейсом, если оно еще не было запущено, либо будет отображен графический интерфейс
для текущего процесса.
Статус сборки:
Содержание
- Совместимость
- Информация о ветках
- Установка и запуск
- Скриншоты
- Структура проекта
- Правила использования и участие в разработке
Совместимость
Приложение корректно работает начиная с ОС Аврора 4.х.х и выше.
Информация о ветках
Версии приложения соответствуют соглашению об наименовании веток
Установка и запуск
Подготовка к работе
Для настройки всей системы, включая push-сервер и приложения для отправки и получения уведомлений, необходимо выполнить несколько шагов.
-
Первый шаг - отправить письмо в службу поддержки разработчиков по адресу dev-support@omp.ru в котором нужно сообщить название приложения и запросить архив с двумя конфигурационными
yaml
файлами. В дальнейшем понадобится файл следующего содержания:push_notification_system: project_id: "..." push_public_address: "..." api_url: "..." client_id: "..." scopes: "..." audience: "..." token_url: "..." key_id: "..." private_key: "..."
-
Следующим шагом будет загрузка исходного кода приложения
PushReceiver
. Для того чтобы это приложение работало с push-сервером необходимо задатьApplication ID
. Для этого существует два способа: либо вpro
файле проекта присвоить переменнойAPP_ID
нужное значение (например:APP_ID = orgexampleappname_fc7dfs3asd9fdgsa0
), либо после установки приложения на устройство, необходимо задать полученное от push-сервера значениеApplication ID
, в файлapplicationid
, расположенное на устройстве по пути/usr/share/ru.auroraos.PushReceiver/
. Далее, при условии что в файле установлен корректное значениеApplication ID
, при первом запуске приложения, оно будет зарегистрировано на push-сервере и ему будет присвоенRegistration ID
, который потребуется в программеPushSender
. Его можно скопировать, нажав на кнопку справа от поля вывода.Обратите внимание. Данный файл используется только в демонстрационных целях. Для бизнес-приложений, необходимо получить
Application ID
от сервера приложений. -
Для настройки сервиса для работы с push-сервером смотрите раздел Особенности.
-
Следующим шагом будет загрузка исходного кода приложения
PushSender
, его сборка и установка на устройство. На первой странице необходимо указатьRegistration ID
, который можно получить изPushReceiver
(описано в предыдущем параграфе). На второй странице приложения через верхнее выпадающее меню можно импортировать конфигурационныйyaml
файл.
Особенности
-
Версии Аврора ОС начиная с 5.0.1.
- Наличие Аврора Центр на устройстве и его регистрацией
-
Версии Аврора ОС до 5.0.1.
- Настройка push сервиса - задать address, port и выставить флаг для crlValidation в false. Для получения текущих настроек, можно воспользоваться командой
devel-su gdbus call -y -d ru.omprussia.PushDaemon -o /ru/omprussia/PushDaemon -m ru.omprussia.PushDaemon.GetNetworkConfiguration
. Для установки параметров:devel-su gdbus call -y -d ru.omprussia.PushDaemon -o /ru/omprussia/PushDaemon -m ru.omprussia.PushDaemon.SetNetworkConfiguration "{'address':<'push-server.ru'>, 'port':<8000>,'crlValidation':<false>"}
(важно, чтобы хост был без протокола, напримерhttps://
), - Перезапуск
push-daemon
с помощью командыdevel-su systemctl restart push-daemon
.
- Настройка push сервиса - задать address, port и выставить флаг для crlValidation в false. Для получения текущих настроек, можно воспользоваться командой
Установка
Установка и запуск производятся согласно инструкции сборка примера.
При возникновении ошибки pushclient development package not found
нужно проверить, корректно ли подключено пространство имён PushNotifications
.
Прочитать об этом можно в данной статье.
Приложению для работы необходимо иметь разрешение на PushNotifications
и Internet
. Эти разрешения задаются в .desktop файле.
Скриншоты
Структура проекта
Проект имеет стандартную структуру приложения на базе C++ и QML для ОС Аврора.
- Файл ru.auroraos.PushReceiver.pro описывает структуру проекта для системы сборки qmake.
- Каталог icons содержит иконки приложения для поддерживаемых разрешений экрана.
- Каталог qml содержит исходный код на QML и ресурсы интерфейса пользователя.
- Каталог components содержит вспомогательные QML компоненты.
- Каталог cover содержит реализации обложек приложения.
- Каталог icons содержит дополнительные иконки интерфейса пользователя.
- Каталог pages содержит страницы приложения.
- Файл PushReceiver.qml предоставляет реализацию окна приложения.
- Каталог rpm содержит настройки сборки rpm-пакета.
- Файл ru.auroraos.PushReceiver.spec используется инструментом rpmbuild.
- Каталог src содержит исходный код на C++.
- Каталог application содержит интерфейс приложения.
- Каталог model содержит модель уведомлений.
- Файл main.cpp является точкой входа в приложение.
- Каталог translations содержит файлы перевода интерфейса пользователя.
- Файл ru.auroraos.PushReceiver.desktop определяет отображение и параметры запуска приложения.
Правила использования и участие в разработке
Исходный код проекта предоставляется по лицензии, которая позволяет использовать его в сторонних приложениях.
Соглашение участника регламентирует права, предоставляемые участниками компании «Открытая Мобильная Платформа».
Информация об участниках указана в файле AUTHORS.
Кодекс поведения — это действующий набор правил компании «Открытая Мобильная Платформа», который информирует об ожиданиях по взаимодействию между членами сообщества при общении и работе над проектами.