flutter_rustore_push

Creator: coderz1093

Last updated:

Add to Cart

Description:

flutter rustore push

flutter_rustore_push #
Flutter RuStore push SDK для подключения пуш уведомлений.
##Документация RuStore
Общее #
Пример реализации #
Для того, чтобы узнать как правильно интегрировать пакет для работы с push-уведомлениями, рекомендуется ознакомиться с приложением-примером
Необходимые условия #
Для работы push-уведомлений необходимо соблюдение следующих условий:

На устройстве пользователя должен быть установлен RuStore.
RuStore должен поддерживать функциональность push-уведомлений.
Приложению RuStore разрешён доступ к работе в фоновом режиме.
Пользователь должен быть авторизован в RuStore.
Подключение в проект
Для подключения пакета к проекту нужно выполнить команду

flutter pub add flutter_rustore_push
copied to clipboard
Эта команда добавит строчку в файл pubspec.yaml
dependencies:
flutter_rustore_push: ^6.1.1
copied to clipboard
Инициализация #
Для инициализации сервиса пуш-уведомлений необходимо добавить значение в AndroidManifest вашего проекта.
<meta-data
android:name="ru.rustore.sdk.pushclient.project_id"
android:value="your_project_id_from_rustore_console" />
copied to clipboard
Настройки ProGuard #
Для настройки ProGuard вам необходимо добавить следующее правило:
-keep public class com.vk.push.** extends android.os.Parcelable
copied to clipboard
И в файле android/app/build.gradle добавьте:
buildTypes {
release {
// ...

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}

// ...
}
copied to clipboard
Проверка возможности получения push-уведомления #
Для работы push-уведомлений необходимо соблюдать несколько условий:

На устройстве пользователя должен быть установлен RuStore.
RuStore должен поддерживать функциональность push-уведомлений.
Приложению RuStore разрешён доступ к работе в фоновом режиме.
Пользователь должен быть авторизован в RuStore.
Для проверки вышеперечисленных условий можно воспользоваться методом RustorePushClient.available()

RustorePushClient.available().then((value) {
print("available success: ${value}");
}, onError: (err) {
print("available error: ${err}");
});
copied to clipboard
Методы для работы с push-токеном и сообщением #
Получение push-токена пользователя #
После инициализации библиотеки вы можете использовать метод RustorePushClient.getToken(), для получения текущего push-токена пользователя. Если у пользователя отсутствует push-токен, то метод создаст и вернёт новый push-токен .
RustorePushClient.getToken().then((value) {
print("get token success: ${value}");
}, onError: (err) {
print("get token error: ${err}");
})
copied to clipboard
Удаление push-токена пользователя #
Вы можете использовать метод RustorePushClient.deleteToken(), для удаления текущего push-токена пользователя.
RustorePushClient.deleteToken().then(() {
print("delete success:");
}, onError: (err) {
print("delete error: ${err}");
})
copied to clipboard
События изменения токена #
Периодически старый токен может становиться невалидным. Токен может выписываться заново. Чтобы понять, что выписался новый токен, нужно использовать коллбек RustorePushClient.onNewToken()
RustorePushClient.onNewToken((value) {
print("on new token success: ${value}");
}, error: (err) {
print("on new token err: ${err}");
});
copied to clipboard
Работа с push-сообщением #
Для получения информации из push-уведомления необходимо добавить коллбек RustorePushClient.onMessageReceived()
RustorePushClient.onMessageReceived((value) {
print("on message received success: id=${value.messageId}, data=${value.data}, notification.body: ${value.notification?.body}");
}, error: (err) {
print("on message received error: ${err}");
});
copied to clipboard
Удаление push-сообщения #
Для удвления push-уведомления необходимо добавить коллбек RustorePushClient.onDeletedMessages()
RustorePushClient.onDeletedMessages(() {
print("deleted messages");
}, error: (err) {
print("on message received error: ${err}");
});
Обработка ошибок #
Для обработки ошибок необходимо использовать коллбек RustorePushClient.onError()
RustorePushClient.onError((err) {
print("on error: ${err}");
});
copied to clipboard
Структура уведомления #
Структура Message:
class Message {
String? messageId;
int priority;
int ttl;
String? collapseKey;
Map<String?, String?> data;
Notification? notification;
}
copied to clipboard

messageId - уникальный ID сообщения. Является идентификатором каждого сообщения.
priority - (на данный момент не учитывается) возвращает значение приоритетности. Сейчас заложены следующие варианты:

0 - UNKNOWN.
1 - HIGH.
2 - NORMAL.


ttl - время жизни push-уведомления типа Int в секундах.
collapseKey - (на данный момент не учитывается) идентификатор группы уведомлений.
data - словарь, в который можно передать дополнительные данные для уведомления.
notification - объект уведомления.

Структура Notification:
class Notification {
String? title;
String? body;
String? channelId;
String? imageUrl;
String? color;
String? icon;
String? clickAction;
}
copied to clipboard

title - заголовок уведомления.
body - тело уведомления.
channelId - возможность задать канал, в который будет отправлено уведомление (актуально для Android 8.0 и выше).
imageUrl - прямая ссылка на изображение для вставки в уведомление (изображение должно быть не более 1 мегабайта).
color - цвет уведомления (Notification.color). Цвет необходимо передать в hex-формате, строкой (Пример: “#A52A2A”).
icon - иконка уведомления. Иконка должна лежать в ресурсах приложения (res/drawable). Значение параметра - строка, которая совпадает с названием ресурса.

Пример: в res/drawable лежит иконка small_icon.xml, которая в коде доступна через R.drawable.small_icon. Для отображения данной иконки в уведомлении сервер должен поместить в параметр “icon” значение “small_icon”.


clickAction - intent action, с помощью которого будет открыта активити при клике на уведомление.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files:

Customer Reviews

There are no reviews.