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

Объявление приложения

Фрагмент кода класса, отвечающего за взаимодействие API push-демона и интерфейса приложения:

#pragma once

#include <QObject>

#include <push_client.h>
#include <nemonotifications-qt5/notification.h>

class Application : public QObject
{
    Q_OBJECT
    Q_PROPERTY(QString applicationId READ applicationId CONSTANT)
    Q_PROPERTY(QString registrationId READ registrationId WRITE setRegistrationId NOTIFY registrationIdChanged)

public:
    explicit Application(QObject *parent = nullptr);

    bool start(const QStringList &arguments);

    QString applicationId() const;

public slots:
    void startGui();

    QString registrationId() const;
    void setRegistrationId(const QString& registrationId);

    void processRegistrationError();
    void processRegistrationId(const QString &registrationId);
    void processNotifications(const Aurora::PushNotifications::PushList &pushList);

signals:
    void registrationIdChanged(const QString& registrationId);

private slots:
    void handlePushClientInactivity();

private:
    bool m_guiStarted = false;
    QString m_registrationId;

    Aurora::PushNotifications::Client *m_client;

    QString getApplicationId() const;
};

API Aurora::PushNotifications доступно при подключении библиотеки libpushclient, основные классы объявлены в заголовочном файле push_client.h.

В конструкторе происходит подключение сигналов Aurora::PushNotifications::Client к слотам Application:

Application::Application(QObject *parent)
    : QObject(parent),
      m_client(new Aurora::PushNotifications::Client(this))
{
    connect(m_client, &Aurora::PushNotifications::Client::registrationId, this, &Application::processRegistrationId);
    connect(m_client, &Aurora::PushNotifications::Client::registrationError, this, &Application::processRegistrationError);
    connect(m_client, &Aurora::PushNotifications::Client::notifications, this, &Application::processNotifications);
    connect(m_client, &Aurora::PushNotifications::Client::clientInactive, this, &Application::handlePushClientInactivity);
    


connect(m_client, &Aurora::PushNotifications::Client::pushSystemReadinessChanged, this, [this](bool status) { 
    qDebug() << "Push system is" << (status ? "available" : "not available");
});
}

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

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