Информация о выпусках (Release notes) Webim Mobile SDK v4.0 для iOS
Ниже представлен список выпусков Webim Mobile SDK 4 для iOS.
Совместимость с Webim Server
Webim Mobile SDK 4.0 рассчитан на работу с Webim Server не ниже 10.5.30. Ряд возможностей (конфигурация форм контактов, подписи полей посетителя, «облегчённый» режим с подсчётом непрочитанных без полноценной сессии чата, расширенные ресурсы локализации и т.д.) опирается на API и настройки ветки 10.8 и новее — ориентируйтесь на Webim Server 10.8+, если используете эти функции.
4.0.0
Общая линия релиза — ускорение работы SDK, более предсказуемая обработка ошибок при старте, прозрачный прогресс передачи файлов, расширенная работа с серверной конфигурацией (в том числе формы контактных данных и подписи полей) и дополнительные точки кастомизации без форка библиотеки.
-
Производительность и API. Повышена производительность библиотеки. Удалены константы в формате
SCREAMING_SNAKE_CASE. Удалён методcloseChat()— сценарии закрытия чата следует реализовывать через актуальные методы потока сообщений и состояние чата. -
Форма контактных данных (pre-chat). Данные формы можно передавать при создании сессии (
SessionBuilder.set(prechat:)) и досылать из потока (MessageStream.set(prechatFields:)). Структура полей и правила отображения согласуются с настройками размещения на сервере; черезMessageStream.getServerSideSettings(completionHandler:)доступны объектыServerSettings/ChatConfig/ContactsSettings. -
Прогресс загрузки и скачивания файлов. Для вложений доступен ход передачи в процентах:
MessageAttachment.getDownloadProgress()(в том числе для исходящих загрузок прогресс отражается в обновлениях вложения). При отправке файлов используется механизм уведомления сервера о прогрессе (SendFileProgressStateи связанные действия). -
Конфигурация и типы настроек сервера. Расширена модель серверных настроек:
ServerSettingsвключаетAccountConfig,ChatConfig,ResourcesConfigи др. Это упрощает чтение лимитов, текстов интерфейса и параметров форм из одного ответа. -
Кастомные модули и интеграции. Для передачи в запросах к серверу дополнительных параметров (например, идентификаторов сценария или модуля на стороне вашей инфраструктуры) используется
SessionBuilder.set(requestHeader:). Требования к заголовкам задаются при использовании соответствующих возможностей Webim Server. -
Ошибки при старте и инициализации. Ошибки инициализации сессии приводят к типу
FatalErrorType.initializationFailedвFatalErrorHandler. Для нефатальных сетевых сценариев по-прежнему используетсяNotFatalErrorHandler. Опционально можно подключитьWebimAlertдля стандартизированных уведомлений об ошибках. -
Опрос после консультации (resolution survey). Доработан сценарий опроса качества после диалога («Ромео и Джульетта»): методы
sendResolutionSurvey,getLastResolutionSurveyWith(operatorId:)и связанные протоколы согласованы с сервером 10.8. -
Тестовый и «облегчённый» режим. Включение
SessionBuilder.set(isLightModeEnabled: true)переводит клиент в режим без полного цикла action/delta-лупов, удобный для отладки и сценариев с ограниченным трафиком. В сочетании сInfoListenerможно получать число непрочитанных сообщений без полноценного чата (см. ниже). Параметрыset(isVisitorDataClearingEnabled:),set(isLocalHistoryStoragingEnabled:)по-прежнему предназначены для отладки. -
Непрочитанные без активной сессии чата. В режиме с
InfoListenerSDK опрашивает сервер и вызываетupdate(newMessageCount:)с количеством непрочитанных сообщений посетителя — без необходимости создавать полноценную сессию чата (требуется поддержка со стороны Webim Server). -
Имена пользовательских полей посетителя. Метод
ChatConfig.getVisitorFieldLabels()возвращает соответствие идентификаторов полей и локализованных подписей, заданных в настройках аккаунта. -
Локализация интерфейса. Строки интерфейса, доступные через
ResourcesConfig(например, тексты прощания, первого вопроса, заголовка оператора и т.д.), дополняют локализацию на стороне приложения и позволяют выровнять подписи с языковыми настройками сервера при поддержке всех доступных для Webim языков. -
Быстрая кастомизация. Наряду с
set(requestHeader:)для сетевого уровня приложение может задаватьset(pageTitle:),set(appVersion:), подключатьWebimLogger/WebimAlertи считывать темы оформления изServerSettings, сокращая объём ручной настройки в коде.