Перейти к основному содержимому

Flutter плагин

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

1. Установите зависимости

flutter_pushed_messaging: ^1.4.0
import 'flutter_pushed_messaging/flutter_pushed_messaging.dart';

Настройка приложения под iOS

Если вы используете iOS убедитесь, что вы правильно настроили свое приложение для поддержки push-уведомлений: вам необходимо добавить возможность push-уведомлений и фоновый режим удаленных уведомлений (background mode).

Для iOS

На iOS добавьте следующие строки в метод didFinishLaunchingWithOptions в файле AppDelegate.m/AppDelegate.swift вашего проекта iOS

if #available(iOS 10.0, *) {
UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate
}

На Android для поддержки Fcm

Выполните следующие действия:

  1. Добавьте в корневой build.gradle следующие зависимости:
buildscript {
...
dependencies {
classpath 'com.google.gms:google-services:4.3.15'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1'
...
}
}
  1. Поместите google-services.json в папку Android/app.
  2. Добавьте в app/build.gradle следующий плагин:
...
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'

На Android для поддержки Hpk

Выполните следующие действия:

  1. Добавьте в корневой build.gradle:
buildscript {
...
repositories {
...
maven { url 'https://developer.huawei.com/repo/' }
}
dependencies {
classpath 'com.huawei.agconnect:agcp:1.5.2.300'
...
}
}
allprojects {
repositories {
...
maven { url 'https://developer.huawei.com/repo/' }
}
}
  1. Поместите agconnect-services.json в папку Android/app
  2. Добавьте в app/build.gradle:
...
dependencies {
...
implementation 'com.huawei.agconnect:agconnect-core:1.5.2.300'
}
...
apply plugin: 'com.huawei.agconnect'

На Android для поддержки RuStore

Выполните следующие действия: Добавьте в AndroidManifest.xml:

<application>
...
<meta-data
android:name="ru.rustore.sdk.pushclient.project_id"
android:value="Your RuStore project ID" />
...
</application>

2. Фоновый процесс

Сообщения могут обрабатываться через обработчик backgroundMessage. При получении создается изолят(изолированный процесс), позволяющий обрабатывать сообщения, даже если ваше приложение не запущено.

@pragma('vm:entry-point')

Future<void> backgroundMessage(Map<dynamic,dynamic> message) async
{
print("Handling a background message: $message");
}

3. Проинициализируйте плагин и добавьте backgroundMessage обработчик.

  await FlutterPushedMessaging.init(backgroundMessage);

4. Чтобы отправить сообщение конкретному пользователю, нужно знать его токен Клиента.

  print("Client token: ${FlutterPushedMessaging.token}");

5. Прослушивайте сообщения, пока ваше приложение активно

  FlutterPushedMessaging.onMessage().listen((message) {
print("Got a message whilst in the foreground: $message");
});

6. Слушаем изменения статуса плагина:

  • ServiceStatus.notActive — Плагин не инициализирован или что-то пошло не так.
  • ServiceStatus.disconnected — Плагин инициализируется, но соединения с сервером нет.
  • ServiceStatus.active - Все работает корректно.
  FlutterPushedMessaging.onStatus().listen((status) {
print("Plugin status: $status");
});

7. Запустите приложение

  runApp(const MyApp());