Миграция Adapty Flutter SDK на v4.3

Adapty Flutter SDK 4.3 по умолчанию показывает встроенные сообщения Google Play и изменяет типы Dart для некоторых данных событий флоу и онбординга. Публичный API не удалён и не переименован, поэтому приложение компилируется с версией 4.3 без изменений. Чтобы сохранить прежнее поведение, ознакомьтесь с каждым изменением в этом гайде.

Если вы используете версию 4.0, начните с перехода на v4.1, а затем следуйте этому руководству.

Краткий справочник

v4.1v4.3
Сообщения Google Play не запрашиваютсяСообщения Google Play отображаются по умолчанию на Android, в том числе поверх флоу
Параметры событий флоу с целыми числами приходят как double на AndroidОни приходят как int на обеих платформах
Поля email в онбординге приходят как AdaptyOnboardingsTextInputОни приходят как AdaptyOnboardingsEmailInput
Вывод на печать ввода в онбординге скрывает введённое значениеВывод на печать показывает введённое значение

Установка

Обновите adapty_flutter до версии v4.3 в вашем pubspec.yaml:

dependencies:
  adapty_flutter: ^4.3.0

Если ваше приложение использует Kids Mode, укажите adapty_flutter_kids вместо этого:

dependencies:
  adapty_flutter_kids: ^4.3.0

Требования остались прежними, как и в версии 4.1: Flutter 3.32.0 (Dart 3.8.0) и iOS 15.0. Подробнее об установке см. в разделе Установка Adapty SDK.

Сообщения Google Play отображаются по умолчанию

Начиная с версии 4.3, SDK запрашивает встроенные сообщения Google Play — например, уведомления об отклонённом платеже — каждый раз, когда Activity вашего приложения запускается после activate. Это происходит в том числе при возврате приложения на передний план, а также при открытии или закрытии флоу или онбординга, так что сообщение может появиться поверх пейвола.

Если это поведение вас устраивает, никаких изменений не требуется. Чтобы управлять моментом показа сообщений, активируйте SDK с ручной обработкой на Android и вызывайте showStoreMessages в подходящий момент:


final configuration = AdaptyConfiguration(apiKey: 'YOUR_PUBLIC_SDK_KEY');
if (Platform.isAndroid) {
  configuration.withStoreMessagesHandling(AdaptyStoreMessagesHandling.manual);
}
await Adapty().activate(configuration: configuration);

Установите ручную обработку только для Android, чтобы не затронуть iOS: на iOS 16 и выше ручная обработка также задерживает сообщения App Store до тех пор, пока приложение не вызовет showStoreMessages. Полное описание API — в разделе Управление сообщениями стора.

Warning

В ручном режиме сторы не показывают сообщения самостоятельно. Если ваше приложение никогда не вызывает showStoreMessages, пользователи никогда не увидят уведомление об отклонённом платеже.

Числовые параметры событий флоу имеют тип int на Android

На Android числовые параметры аналитических событий флоу раньше приходили как double. Начиная с версии 4.3, они приходят как int, как и на iOS. Это затрагивает flowViewDidReceiveAnalyticEvent и колбэк onDidReceiveAnalyticEvent у AdaptyUIFlowPlatformView, включая значения даты и времени в событиях ввода флоу.

Приведение к double теперь вызывает исключение на Android. Считывайте числовые параметры как num:

- final timestamp = params['value'] as double;
+ final timestamp = params['value'] as num;

Поля email в онбординге передаются как AdaptyOnboardingsEmailInput

Начиная с версии 4.3, поля email в онбординге передаются в onboardingViewOnStateUpdatedAction и колбэк onStateUpdatedAction компонента AdaptyUIOnboardingPlatformView как AdaptyOnboardingsEmailInput. Раньше они передавались как AdaptyOnboardingsTextInput. Если ваш код считывает email из варианта text, добавьте обработку варианта email:

  switch (input) {
    case AdaptyOnboardingsTextInput(:final value):
      // text fields
      break;
+   case AdaptyOnboardingsEmailInput(:final value):
+     // email fields
+     break;
    case AdaptyOnboardingsNumberInput(:final value):
      // number fields
      break;
  }

Числовые поля теперь приходят как AdaptyOnboardingsNumberInput. До версии 4.3 их обновления не поступали вовсе. См. Обработка данных из онбордингов.

Введённые значения онбординга отображаются в выводе при логировании

Вывод AdaptyOnboardingsInputParams или AdaptyOnboardingsInput теперь содержит введённые пользователем данные. Если ваше приложение логирует эти объекты, проверьте логи: теперь они могут содержать имена, адреса электронной почты и другие данные, введённые пользователями.

Новое в 4.3

Эти изменения не требуют изменений в коде: