Сервис пуш-уведомлений для Aurora OS
Получение учетных данных
- Направьте запрос в техническую поддержку:
dev-support@omp.ru
- Получите:
applicationId
- Конфигурационный файл
.yaml
- Адрес экземпляра Aurora Center
Настройка запуска приложения
- Добавьте Qt-совместимость и обработку фонового режима
Main.cpp
:
#include <flutter/compatibility.h>
#include <QtCore/QDebug>
#include <QCoreApplication>
#include <flutter/flutter_aurora.h>
#include <flutter/flutter_aurora_capi.h>
#include <flutter/flutter_compatibility_qt.h>
#include "generated_plugin_registrant.h"
int main(int argc, char* argv[]) {
bool noGui = false;
for (int i = 1; i < argc; ++i) {
if (qstrcmp(argv[i], "--no-gui") == 0) {
noGui = true;
break;
}
}
aurora::Initialize(argc, argv);
aurora::EnableQtCompatibility();
aurora::RegisterPlugins();
FlutterAuroraLaunchOptions options;
FlutterAuroraLaunchOptionsInitDefault(&options, sizeof(options));
options.gui_type = noGui
? FlutterAuroraGuiForceDisabled
: FlutterAuroraGuiForceEnabled;
qDebug() << "Launching Flutter" << (noGui ? "headless" : "with GUI");
FlutterAuroraLaunch(&options);
return 0;
}
- Добавьте разрешения в файл
aurora/desktop/YOUR_APP_NAME.desktop
:
[X-Application]
Permissions=PushNotifications;Internet
Обработка фоновых уведомлений
- Добавьте фоновый обработчик entry-point для изолята:
@pragma('vm:entry-point')
Future<void> backgroundMessage(Map<dynamic,dynamic> message) async {
print("Background message: $message");
// Ваша логика обработки
}
- Инициализация плагина
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await PushedMessaging().init(
backgroundMessage, // ваш обработчик
applicationId: 'ВАШ_APPLICATION_ID',
);
runApp(const MyApp());
}