Документация
ОС Аврора 5.1.4

UI-уведомления

В ОС версии 5.2 реализован новый механизм доставки push-уведомлений напрямую в UI. Данный механизм убирает необходимость создавать уведомления непосредственно из приложения. Переход на новый механизм требует только подключения новой библиотеки libpushapi.

Подключение библиотеки в проект

Для работы с Push API необходимо подключить библиотеку pushapi в конфигурационном файле проекта.

qmake

В pro-файл проекта необходимо добавить следующую строку для связи с библиотекой через pkg-config:

PKGCONFIG += pushapi

CMake

При использовании системы сборки Cmake нужно выполнить подключение библиотеки в файле CMakeLists.txt:

  1. Найти пакет pushapi с помощью модуля PkgConfig:
    include(FindPkgConfig)
    pkg_search_module(PUSHAPI pushapi REQUIRED)
    
  2. Добавить пути к заголовочным файлам библиотеки в список директорий для поиска:
    include_directories(${PUSHAPI_INCLUDE_DIRS})
    
  3. Связать библиотеку pushapi с целевым исполняемым файлом приложения:
    target_link_libraries(${PROJECT_NAME} PRIVATE
         # ... другие библиотеки проекта ...
         pushapi
    )
    

Если ранее приложение создавало уведомления с данными, пришедшими в push-уведомлении, то при переходе на новый механизм во избежание дублирования уведомлений стоит избавиться от их самостоятельного создания.

Приложение может реализовать в своём D-Bus-сервисе метод, который будет вызван при клике на push-уведомление, если его имя было передано в поле action push-уведомления. На текущий момент поддерживается только один метод на push-уведомление и не поддерживаются методы с аргументами.

Сервис приложения будет автоматически определён как конкатенация полей OrganisationName и ApplicationName из секции X-Application файла .desktop. Для того, чтобы метод выполнялся в том числе при выключенном приложении, необходимо сделать приложение активируемым через D-Bus путём добавления поля ExecDBus в секцию X-Application:

[X-Application]
ExecDBus = /usr/bin/pushdemo

Поддержка предыдущего механизма уведомлений сохраняется в данный момент, для продолжения работы не требуется дополнительных изменений в приложении или пересборки.

Библиотеки libpushclient и libpushapi конфликтуют друг с другом, поэтому одновременно можно использовать только одну из них.

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.