gravity_sdk 0.24.1
gravity_sdk: ^0.24.1 copied to clipboard
Gravity SDK
Changelog #
0.24.1 #
- Исправлена ошибка компиляции на Flutter 3.38–3.41 (
SizeTransition.alignmentпоявился только во Flutter 3.44); версии 0.22.0–0.24.0 собирались только на Flutter 3.44 и новее - resetUser() и restoreUserId() теперь бросают исключение, если устройство отказалось стереть или записать uid, вместо того чтобы отрапортовать успех; текущая сессия и пользователь из setUser() сбрасываются и при таком отказе, а uid на устройстве остаётся прежним
- Сбой первого обращения к локальному хранилищу больше не отключает сохранение данных до перезапуска приложения: следующая операция пробует снова
- uid, который не удалось записать после успешного запроса, больше не теряется: запрос не падает, ошибка отправляется в отчёт, а запись повторяется со следующим ответом сервера; getUserId() и колбэк setUserIdListener() при этом сообщают об одном и том же uid
- clearQueue() больше не может быть обойдён: событие, ждавшее сессию, попавшее в паузу повторной отправки или в момент записи личности на диск, после очистки очереди не уходит на сервер
- Событие, поднятое при известной SDK личности — после успешного запроса, setUser(), restoreUserId() или уже прочитанного с устройства uid — теперь уходит от неё, даже если во время подготовки запроса произошёл resetUser() или restoreUserId(); та же личность сохраняется в очереди для повторной отправки
- getContentByGroup() и запросы контента с деталями теперь тоже выбирают одного владельца сессии: два вызова сразу после resetUser() открывают одну сессию, а не две
- Сбой запроса, владевшего инициализацией сессии, больше не роняет остальные запросы, которые его ждали — trackView*, triggerEvent*, getContent* и отправку событий из офлайн-очереди: они переизбирают владельца и получают сессию сами
- In-app контент больше не показывается, если за время его загрузки сменился пользователь (setUser(), resetUser(), restoreUserId() или присваивание GravitySDK.instance.user) или экран: кампания предыдущего экрана не открывается поверх нового маршрута, в том числе при вложенных Navigator. GravityAnchor, inline-виджеты и inline_list в таком случае запрашивают контент заново для нового пользователя
- Отчёты об ошибках SDK больше не содержат uid пользователя, тело ответа сервера и query-параметры, фрагменты и учётные данные в URL. Состав отчёта описан в README
- Повторяющиеся отчёты об ошибках больше не расходуют лимит отправки, а кэш повторов больше не сбрасывается целиком
- Повторный initialize() с LogLevel.none теперь отключает и HTTP-логи; заголовок Authorization в логах больше не выводится
0.24.0 #
- Добавлен доступ к серверному uid пользователя: getUserId(), setUserIdListener() и restoreUserId() для восстановления пользователя после переустановки приложения
- Запросы, дождавшиеся resetUser() или restoreUserId(), теперь заново выбирают владельца сессии, а не уходят параллельно без сессии
- Исправлено: запросы контента (getContent*, inline-виджеты, автопоказ in-app) теперь уходят от пользователя, заданного через setUser(); раньше это касалось только visit и event. Показы, лимиты частоты и A/B-варианты для такого контента теперь считаются для указанного пользователя, а не для анонимной сессии устройства
0.23.1 #
- Исправлена ошибка компиляции с dio 5.10.0 и новее (
DioExceptionType.transformTimeout)
0.23.0 #
- Добавлена поддержка офлайн-доставки событий: сохранение очереди на устройстве и повторная отправка при восстановлении соединения
- Добавлены настройки OfflineQueueSettings, методы flushQueue() и clearQueue(), а также pendingDeliveries для проверки размера очереди
- Добавлены повторные попытки запросов при временных ошибках и staleContentTimeout для ограничения показа устаревшего контента
- Добавлен доступ к исходным variables через CampaignContent.rawVariables
- Добавлен ContentClickEngagement для отслеживания кликов по контенту, отображаемому приложением
- У всех событий добавлены customProps и eventTime, у CustomEvent — cuid, cuidType и cart
- Исправлено дублирование ручки перетаскивания BottomSheet при включении её в теме приложения
- Обновлён example
0.22.2 #
- Доработана поддержка in-app форм
0.22.1 #
- Исправлено значение атрибута app_platform на iOS (iOS вместо ios)
0.22.0 #
- У события FollowUrlEvent добавлен тип открытия ссылки (browser/webview)
- Добавлена поддержка in-app форм
0.21.0 #
- Добавлена возможность временно блокировать автопоказ in-app контента (presentation lock)
0.20.0 #
- Добавлена поддержка multi-step кампаний
0.19.0 #
- Подняты минимальные требования: Flutter 3.38.1, Dart 3.10
- Обновлена зависимость package_info_plus до ^10.1.0
0.18.0 #
- Добавлена поддержка передачи recommendation rules при запросе контента
0.17.0 #
- Добавлен метод resetUser() для сброса идентификации пользователя
- Правки по батчингу
0.16.0 #
- Исправлено отображение SnackBar
- Скорректирована работа closeOnClick у BottomSheetContent, FullScreenContent, ModalContent и SnackBar
- Добавлена возможность отображать Tooltip
0.15.0 #
- Скорректирована работа SnackBar, GravityButton, BottomSheetContent, GravityCloseButtonWidget, GravityImageWidget, GravityText
- Добавлен backgroundColor для GravityInlineWidget
0.14.0 #
- Добавлен флаг isFetchContentOnTrack в setOptions для управления загрузкой контента в trackViewNoShow/triggerEventNoShow
- Добавлен метод triggerTrackingUrl
- Исправлен метод sendContentEngagement
- Оптимизация взаимодействия с бэкендом
0.13.1 #
- Правки по батчингу
0.13.0 #
- Обновлён api url
- Скорректирована конвертация цвета из web-формата
0.12.2 #
- Правки по батчингу
0.12.1 #
- Добавлен виджет GravityInlineListWidget
- Класс Container переименован в FrameContainer
- Скорректированы настройки width, margin и padding у InlineContent
- Скорректированы настройки padding у GravityButton
- Обновлена версия gradle у example
0.12.0 #
- Добавлена поддержка headless api
0.11.1 #
- Добавлена возможность указать свой индикатор загрузки у GravityInlineWidget
0.11.0 #
- Добавлена возможность добавления фона элементам через атрибут backgroundImage
- Добавлен новый тип элемента - webview
- Добавлена возможность вертикального выравнивания в FullScreenContent
- Исправлена отправка VisibleImpression у GravityInlineWidget
0.10.2 #
- Добавлена возможность управления уровнями логирования
0.10.1 #
- Обновлены версии пакетов
- Настроено отображение товаров во всплывающих окнах
- Добавлено отображение товаров в формате сетки
- Настроена корректная отправка engagement-запросов
0.10.0 #
- Оптимизация взаимодействия с бэкендом
- Удалены неиспользуемые зависимости
0.9.13 #
- Добавлена поддержка отображения контента в GravityInlineWidget в зависимости от placeholderId.
0.9.12 #
- Добавлены скругления углов для GravityImageWidget.
- Фикс выравнивания GravityText.
0.9.11 #
- Обновлён example.
0.9.10 #
- Фикс скругления углов у bottom sheet.
0.9.9 #
- Соответствие nullable и required полей API.
0.9.8 #
- Закрытие bottom sheet при нажатии на кнопку. Отключается через closeOnClick = false в классе OnClick.
- В поле attributes объекта PageContext подмешиваются app_version, sdk_version, app_platform
- ContentSettings перемещены в data.options
- InlineWidget не рендерится в случае ошибки получения данных.
0.9.6 #
- Фикс кеширования и отправки сессии.
- Скругление углов у кнопки.
0.9.5 #
- Удалена зависимость от пакета notification_permissions.
- Добавлена возможность задать статус разрешения уведомлений извне.
0.9.4 #
- Исправлены значения enum product_action
- Поле Item в объекте Slot теперь просто Map<String, dynamic>
0.9.3 #
- В объекте device передаются tracking и permission.
0.9.2 #
- Удалены последствия патча.
0.9.1 #
- Исправлена отправка ctx в event.
- Поле events в объекте Slot теперь nullable.
- Поля categories и keywords в объекте Item теперь nullable.
- Обработка клика по картинке.
- Отправка isBuildEngagementUrl в Options
- Поле name в Event переименовано в type.
0.9.0 #
- Поля pageNumber и countPage в Products теперь опциональные.
- Добавлена возможность передавать PageContext в GravityInlineWidget
- Добавлены CampaignContent и Campaign в ProductWidgetBuilder
0.8.10 #
- Поправлена ошибка с парсингом CampaignIdsResponse
0.8.9 #
- Отображение snackbar.
0.8.8 #
- Получение и отображение кампаний в ответ на trackView и triggerEvent
0.8.7 #
- Исправлены ошибки в методе event
0.8.6 #
- Исправлены ошибки в методе visit
0.8.5 #
- В качестве id устройства используется UUID
- UserAgent передаётся строкой.
0.8.4 #
- Добавлены поля data, location, lng, utm, attributes в класс PageContext.
- Поля hashedEmail, cuid, cuidType теперь не обязательные.
0.8.3 #
- Обновлён README.md. Исправлена навигация в Оглавлении.
0.8.2 #
- Обновлён README.md. Добавлено описание ProductWidgetBuilder.
0.8.1 #
- Initial release