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

Push-уведомления — это короткие уведомления от сторонних приложений на мобильное устройство. Уведомления доставляются через глобальный Интернет или интранет. Этот тип сообщений позволяет серверам приложений информировать пользователей о важных событиях, даже если приложение не запущено.

ОС Аврора предоставляет API push-уведомлений для приложений, которые могут взаимодействовать с сервером push-уведомлений и получать такие сообщения.

Использование системы push-уведомлений

Все средства для работы с системой push-уведомлений предоставляются libpushclient.

Чтобы использовать эту библиотеку, приложение должно использовать файл pkgconfig "pushclient.pc".

Например, в проекте на основе qmake:

CONFIG += link_pkgconfig
PKGCONFIG += pushclient

Клиент push-уведомлений

Класс Sailfish::PushNotifications::Client предоставляет API для связи с сервером push-уведомлений, который включает в себя различные запросы и ответы.

Также это позволяет приложению установить службу D-Bus для получения входящих уведомлений.

Перед началом работы в клиенте необходимо указать идентификатор приложения.

auto client = new Sailfish::PushNotifications::Client();

// connect to needed signals
connect(client, &Sailfish::PushNotifications::Client::registrationId,
        this, &PushExample::processRegistrationId);
connect(client, &Sailfish::PushNotifications::Client::notifications,
        this, &PushExample::processNotifications);
connect(client, &Sailfish::PushNotifications::Client::clientInactive,
        this, &PushExample::handlePushClientInactivity);

// set id
client->setApplicationId("SomeID");

// enable service to receive notifications
client->startHandler();

// register application on Push Server
client->register();

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

Это можно сделать следующим образом:

%post
if [ $1 == 1 ];then
    gdbus call -y \
            --dest ru.omprussia.ApplicationServices \
            --object-path /ru/omprussia/ApplicationServices \
            --method ru.omprussia.ApplicationServices.Create push-example ApplicationID \(0,\)
fi

То же самое касается удаления приложения:

%postun
if [ $1 == 0 ];then
    gdbus call -y \
            --dest ru.omprussia.ApplicationServices \
            --object-path /ru/omprussia/ApplicationServices \
            --method ru.omprussia.ApplicationServices.RemoveAllForApplication ApplicationID
fi

См. также

C++-классы push-уведомлений