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

Методы для работы с токенами

примечание

Настоящий раздел содержит сведения, касающиеся следующих языков программирования:

  • Kotlin;
  • Java;
  • Unity;
  • Flutter;
  • Unreal Engine;
  • Godot;
  • Defold.

Получение push-токена пользователя

предупреждение

Если у пользователя отсутствует push-токен, то метод создаст и вернёт новый push-токен.

После инициализации библиотеки вы можете использовать метод RuStorePushClient.getToken(), для получения текущего push-токена пользователя.

Пример реализации RuStorePushClient.getToken
RuStorePushClient.getToken().addOnCompleteListener(object : OnCompleteListener<String?> {
override fun onFailure(throwable: Throwable) {
// Process error
}
override fun onSuccess(result: String?) {
// Process success
}
})

Удаление push-токена пользователя

После инициализации библиотеки вы можете использовать метод RuStorePushClient.deleteToken(), для удаления текущего push-токена пользователя.

Пример реализации RuStorePushClient.deleteToken
RuStorePushClient.deleteToken().addOnCompleteListener(object : OnCompleteListener<Unit> {
override fun onFailure(throwable: Throwable) {
// Process error
}

override fun onSuccess(result: Unit) {
// Process success
}
})

События изменения токена

примечание

Только для Flutter и Defold.

Периодически старый токен может становиться некорректным. Токен может выписываться заново. Чтобы понять, что выписался новый токен, нужно использовать callback RustorePushClient().

RustorePushClient.onNewToken((value) {
print("on new token success: ${value}");
}, error: (err) {
print("on new token err: ${err}");
});

Работа с RuStoreMessagingService

примечание

Только для Godot.

Для работы с push-уведомлениями используйте события интерфейса RuStoreMessagingService.

Пример использования событий RuStoreMessagingService

func _ready():
#
# Инициализация _push_client
#

_push_client.on_new_token.connect(_on_new_token)
_push_client.on_message_received.connect(_on_message_received)
_push_client.on_deleted_messages.connect(_on_deleted_messages)
_push_client.on_error.connect(_on_error)

func _on_new_token(data: String):
pass

func _on_message_received(data: Dictionary):
var messageId = data["messageId"]
var priority = data["priority"])
var ttl = data["ttl"])
var collapseKey = data["collapseKey"])
var data = data["data"])
var rawData = data["rawData"])
var title = data["notification_title"])
var body = data["notification_body"])
var channelId = data["notification_channelId"])
var color = data["notification_color"])
var icon = data["notification_icon"])
var clickAction = data["notification_clickAction"])
var imageUrl = data["notification_imageUrl"])

func _on_deleted_messages():
pass

func _on_error(errors: Array):
pass
НазваниеОписание

on_new_token

Метод вызывается при получении нового push-токена.

После вызова этого метода ваше приложение становится ответственно за передачу нового push-токена на свой сервер. Метод возвращает значение нового токена.

on_message_received

Метод вызывается при получении нового push-уведомления.

Если в поле notification есть данные, SDK попытается отобразить уведомление. Если вы не хотите, чтобы уведомление отображал SDK, используйте поле data, а объект notification оставляйте пустым. Однако метод on_message_received вызывается в любом случае.

Метод возвращает объект типа Dictionary. Доступные ключи:

  • messageId — уникальный ID сообщения. Является идентификатором каждого сообщения.

  • priority — (на данный момент не учитывается) возвращает значение приоритетности. В настоящее время заложены следующие варианты:

    • 0 — UNKNOWN

    • 1 — HIGH

    • 2 — NORMAL

  • ttl — время жизни push-уведомления типа Int в секундах.

  • collapseKey — (на данный момент не учитывается) идентификатор группы уведомлений.

  • data — словарь, в который можно передать дополнительные данные для уведомления.

  • rawData — словарь data в виде массива байтов.

  • notification_title — заголовок уведомления.

  • notification_body — текст уведомления.

  • channelId — id канала уведомления.

  • notification_color — цвет иконки уведомления.

  • notification_icon — название иконки уведомления.

  • notification_clickAction — действие по тапу на уведомление.

  • notification_imageUrl — ссылка на изображение иконки.

on_deleted_messages

Метод вызывается, если один или несколько push-уведомлений не доставлены на устройство. Например, если время жизни уведомления истекло до момента доставки.

При вызове этого метода рекомендуется синхронизироваться со своим сервером, чтобы не пропустить данные.

on_error

Метод вызывается, если в момент инициализации возникает ошибка.

Метод on_error возвращает массив объектов RuStoreError. Возможные ошибки:

  • UnauthorizedException — пользователь не авторизован в RuStore.

  • HostAppNotInstalledException — RuStore отсутствует на устройстве пользователя.

  • HostAppBackgroundWorkPermissionNotGranted — у RuStore нет разрешения на работу в фоне.