SDK Push-уведомления для Flutter (версия 1.0.0)
Ниже перечислены условия работы push-уведомлений.
- Подпись и package name различных типов сборок вашего приложения (debug, release и т.д.) могут отличаться друг от друга. В таком случае вы должны создать в разделе Push-уведомления > Проекты из RuStore Консоль проект под каждый тип сборки..
- Используется актуальная версия SDK.
- Загружены данные о приложении в разделе Push-уведомления > Проекты из RuStore Консоль.
На устройстве пользователя установлено приложение-дистрибьютор (RuStore и т.д.)
Для проверки того, что приложение-дистрибьютор установлено на устройстве пользователя, используйте методRuStorePushClient.checkPushAvailability..- Если установлено приложение RuStore, то ему разрешен доступ к работе в фоновом режиме. Без этого разрешения push-уведомления будут приходить, но со значительной задержкой.
- Отпечаток подписи приложения, установленного на девайсе, совпадает с отпечатком подписи приложения, которое добавлено в разделе Push-уведомления > Проекты из RuStore Консоль.
Пример реализации
Ознакомьтесь с приложением-примером, чтобы узнать, как правильно интегрировать SDK push-уведомлений.
Подключение в проект
Для подключения пакета к проекту выполните следующую команду.
flutter pub add flutter_rustore_push
Она добавит строчку в файл pubspec.yaml.
dependencies:
flutter_rustore_push: ^1.0.0
Инициализация
Для инициализации понадобится идентификатор проекта из RuStore Консоль. Чтобы получить его, на странице приложения перейдите в раздел Push-уведомления > Проекты и скопируйте значение в поле ID проекта.
Обратите внимание, что Push SDK не поддерживает работу в нескольких процессах одновременно.
Если ваше приложение использует несколько процессов, необходимо инициализировать SDK только в главном процессе.
Если инициализация происходит в дополнительном процессе, это может привести к некорректной работе push-уведомлений.
Для инициализации сервиса push-уведомлений добавьте значение в values вашего Android-проекта.
<resources>
<string name= "flutter_rustore_push_project" translatable= "false">xxx</string>
</resources>
xxx — идентификатор проекта из RuStore Консоль. Чтобы получить его, на странице приложения перейдите в раздел Push-уведомления > Проекты и скопируйте значение в поле ID проекта.
Для запуска сервиса push-уведомлений добавьте класс Application, наследованный от FlutterRustoreApplication.
Пример того, как это сделать на Kotlin.
package ru.rustore.flutter_rustore_push_example
import ru.rustore.flutter_rustore_push.FlutterRustoreApplication
open class Application: FlutterRustoreApplication() {
}
Укажите этот класс в AndroidManifest.xml.
<application
android:label= "flutter_rustore_push_example"
android:name= ".Application"
android:icon= "@mipmap/ic_launcher">
// ...
</application>
Настройки ProGuard
Для настройки ProGuard добавьте следующее правило.
-keep public class com.vk.push.** extends android.os.Parcelable
В файле android/app/build.gradle добавьте следующие строки.
buildTypes {
release {
// ...
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Проверка возможности получать push-уведомления
Для проверки того, что приложение-дистрибьютор установлено на устройстве пользователя, используйте методRustorePushClient.available().
RustorePushClient.available().then((value) {
print("available success: ${value}");
}, onError: (err) {
print("available error: ${err}");
}
);