Справочник по WebimClientLibrary

Редакция соответствует версии 3.5.0.

Содержание



класс Webim

Набор статических методов, которые используются при создании объекта сессии и для работы в push-уведомлениями, поступающими от сервиса Webim.

Наверх

метод класса newSessionBuilder()

Метод, необходимый для получения объекта SessionBuilder, который в свою очередь необходим для создания экземпляра класса WebimSession.

Наверх

метод класса parse(remoteNotification:)

Метод, используемый для конвертирования объекта, представляющего push-уведомление в iOS-приложение, в объект класса WebimRemoteNotification.

Параметр remoteNotification – словарь типа [AnyHashable: Any] (такой же тип словаря передается в метод application(_ application:,didReceiveRemoteNotification userInfo:) в параметр userInfo в классе AppDelegate iOS-приложения). В параметр необходимо передать значение параметра userInfo упомянутого выше метода класса AppDelegate в не измененном виде.

Возвращает объект класса WebimRemoteNotification или nil, если значение параметра remoteNotification не соответствует формату push-уведомления, получаемого от сервиса Webim, или уведомление не содержит полезной нагрузки.

В качестве предварительной проверки, является ли параметр remoteNotification push-уведомлением, полученным от сервиса Webim, может быть вызван метод isWebim(remoteNotification:).

Наверх

метод класса isWebim(remoteNotification:)

Метод, позволяющий узнать, является ли объект, представляющий push-уведомление в iOS-приложении, push-уведомлением, полученным от сервиса Webim.

Параметр remoteNotification – словарь типа [AnyHashable: Any] (такой же тип словаря передается в метод application(_ application:,didReceiveRemoteNotification userInfo:) в параметр userInfo в классе AppDelegate iOS-приложения). В параметр необходимо передать значение параметра userInfo упомянутого выше метода класса AppDelegate в не измененном виде.

Возвращает булево значение: true – если значение параметра remoteNotification является полученным push-уведомлением от сервиса Webim, false – если не является.

Наверх

перечисляемый тип RemoteNotificationSystem

Системы push-уведомлений, которые могут быть переданы в качестве параметра метода экземпляра SessionBuilder set(remoteNotificationSystem:).

Наверх

случай APNS

Соответствует Apple Push Notification System.

Наверх

случай NONE

Соответствует ситуации, когда приложению не требуется получать push-уведомления от сервиса Webim.

Наверх


класс SessionBuilder

Класс, экземпляр которого используется для получения экземпляра класса WebimSession. Экземпляр класса получается методом newSessionBuilder() класса Webim.

Наверх

метод экземпляра set(accountName:)

Метод необходим для задания названия аккаунта в системе Webim при создании сессии.

Параметр accountName – название аккаунта клиента в системе Webim. Обычно представляет из себя URL-сервера (например, https://demo.webim.ru), но может иметь и вид названия аккаунта одним словом (например, «demo»), если сервер находится в домене webim.ru. Тип параметра – String.

Возвращает тот же экземпляр класса SessionBuilder, но с установленным названием аккаунта.

Для получения экземпляра WebimSession вызов метода является обязательным.

Наверх

метод экземпляра set(location:)

Метод необходим для задания изначально используемой локации при создании сессии.

Параметр location – локация внутри сервиса Webim, которая будет использоваться при чате. Тип параметра – String. Скорее всего, сразу же можно использовать значения «mobile» и/или «default». Для создания и дальнейшего использования дополнительных локаций необходимо связаться со службой поддержки сервиса Webim.

Возвращает тот же экземпляр класса SessionBuilder, но с установленным названием используемой локации.

Для получения экземпляра WebimSession вызов метода является обязательным.

Наверх

метод экземпляра set(appVersion:)

Метод используется для задания версии клиентского приложения, если их необходимо различать в контексте сервиса Webim.

Параметр appVersion – версия клиентского приложения или nil. Тип параметра – опциональный String.

Возвращает тот же экземпляр класса SessionBuilder, но с установленной версией клиентского приложения, если параметр appVersion не nil, и не измененный экземпляр класса SessionBuilder, если параметр appVersionnil.

Для получения экземпляра класса WebimSession вызов метода не является обязательным.

Наверх

метод экземпляра set(visitorFieldsJSONString jsonString:)

Метод используется для внутренней авторизации посетителя.

Без вызова этого метода при создании объекта сессии, пользователь будет анонимным, со случайным образом сгенерированным ID. Этот ID сохраняется в настройках приложения, и в случае потери этих настроек (например, при переустановке приложения), все данные (история сообщений) будут потеряны.

Все данные авторизованного пользователя сохраняются и будут доступны при авторизации с любого устройства.

Параметр jsonString – поля авторизационных данных пользователя в JSON-формате, тип – String. Подробную информацию об этих полях (включая, какие из них являются обязательными, и как необходимо их формировать) можно почерпнуть на сайте сервиса Webim: https://webim.ru/help/identification/.

Возвращает тот же экземпляр класса SessionBuilder, но с установленными авторизационными данными посетителя.

Для получения экземпляра класса WebimSession вызов метода не является обязательным.

Данный метод не может быть вызван одновременно с методом set(providedAuthorizationTokenStateListener:,providedAuthorizationToken:).

Наверх

метод экземпляра set(visitorFieldsJSONData jsonData:)

Метод, полностью аналогичный методу set(visitorFieldsJSONString jsonString:) за исключением параметра: параметр jsonData имеет тип Data (приведенный от JSON-формата). Какой из двух методов использовать не имеет значения.

Наверх

метод экземпляра set(providedAuthorizationTokenStateListener:,providedAuthorizationToken:)

Когда клиентское приложение предоставляет свой собственный механизм авторизации посетителя, это может быть реализовано с помощью передачи особого токена вместо посетительских полей.

Данный метод передает объект протокола ProvidedAuthorizationTokenStateListener и токен. Токен передавать не обязательно: если опустить второй параметр, токен будет сгенерирован библиотекой.

Возвращает тот же экземпляр класса SessionBuilder, но с установленными объектом ProvidedAuthorizationTokenStateListener и токеном клиентской системы авторизации посетителя.

Для получения экземпляра класса WebimSession вызов метода не является обязательным.

Данный метод не может быть вызван одновременно с методами set(visitorFieldsJSONString jsonString:) или set(visitorFieldsJSONData jsonData:).

Наверх

метод экземпляра set(pageTitle:)

Метод, с помощью которого можно установить заголовок чата со стороны оператора при создании экземпляра сессии. В случае, если при создании экземпляра сессии метод не был вызван, заголовок примет значение по умолчанию – «iOS Client».

Параметр pageTitle – заголовок чата со стороны оператора. Тип параметра – String.

Возвращает тот же экземпляр класса SessionBuilder, но с установленным заголовком чата со стороны оператора.

Для получения экземпляра класса WebimSession вызов метода не является обязательным.

Наверх

метод экземпляра set(fatalErrorHandler:)

Метод, с помощью которого можно установить объект, подчиняющийся протоколу FatalErrorHandler, который будет ответственен за обработку ошибок при создании экземпляра сессии, которые могут быть вызваны сервисом Webim.

Параметр fatalErrorHandler – опциональный; любой класс, подчиняющийся протоколу FatalErrorHandler, или nil, если методы протокола FatalErrorHandler в приложении использоваться не будут.

Возвращает тот же экземпляр класса SessionBuilder, но с установленным объектом FatalErrorHandler.

Для получения экземпляра класса WebimSession вызов метода не является обязательным.

Наверх

метод экземпляра set(remoteNotificationSystem:)

Метод, с помощью которого при создании сессии можно указать, будет ли приложение получать push-уведомления от сервиса Webim и, если будет, какую систему push-уведомлений приложение будет для этого использовать. (См. перечисляемый тип RemoteNotificationSystem в классе Webim.)

Параметр remoteNotificationSystem – соответствующее значение типа RemoteNotificationSystem класса Webim.

Требует предварительно полученного экземпляра класса SessionBuilder. В случае, если данный метод вызывается, и значение параметра remoteNotificationSystem отлично от NONE, при создании экземпляра сессии вызов метода set(deviceToken:) является обязательным.

Для получения экземпляра класса WebimSession вызов метода не является обязательным. Если при создании сессии метод вызван не был, сервис Webim не будет высылать приложению push-уведомления (аналогично, как при значении параметра remoteNotificationSystem NONE).

Наверх

метод экземпляра set(deviceToken:)

Метод, с помощью которого при создании сессии можно указать Device Token для получения приложением push-уведомлений от сервиса Webim.

Параметр deviceTokenDevice Token, использующийся для получения push-уведомлений в приложении. Тип – опциональный String в шестнадцатиричном формате, без служебных символов и пробелов.

Пример приведения значения Device Token к нужному виду из значения в формате Data, получаемом методом application(_ application:,didRegisterForRemoteNotificationsWithDeviceToken deviceToken:) класса AppDelegate приложения:

let deviceToken = deviceToken.map { String(format: «%02.2hhx», $0) }.joined()

Возвращает тот же экземпляр класса SessionBuilder, но с установленным значением Device Token.

Для получения приложением push-уведомлений сервиса Webim, вызов данного метода не является достаточным: необходим также вызов метода set(remoteNotificationSystem:).

Для получения экземпляра класса WebimSession вызов метода не является обязательным.

Наверх

метод экземпляра set(isLocalHistoryStoragingEnabled:)

По умолчанию сессия сохраняет на устройстве историю сообщений (в SQLite-хранилище, связанном с приложением). Если для каких-либо целей необходимо отключить данный функционал, используется этот метод со значением параметра isLocalHistoryStoragingEnabled false.

Параметр isLocalHistoryStoragingEnabled – булева переменная, означающая необходимость хранения истории сообщений локально (значение true) или ее (необходимости) отсутствие (значение false).

Возвращает тот же экземпляр класса SessionBuilder, но с установленным вручную значением соответствующей опции.

Для получения экземпляра класса WebimSession вызов метода не является обязательным. Отсутствие вызова метода аналогично его вызову со значением параметра isLocalHistoryStoragingEnabled true.

Наверх

метод экземляра set(isVisitorDataClearingEnabled:)

Метод, используемый для удаления всех существующих пользовательских данных во время создания экземпляра сессии.

Параметр isVisitorDataClearingEnabled – булева переменная, означающая необходимость очистить пользовательские данные (значение true) или ее (необходимости) отсутствие (значение false).

Возвращает тот же экземпляр класса SessionBuilder, но с установленным вручную значением соответствующей опции.

Для получения экземпляра класса WebimSession вызов метода не является обязательным. Отсутствие вызова метода аналогично его вызову со значением параметра isVisitorDataClearingEnabled false.

Наверх

метод экземпляра build()

Метод, который вызывается в заключение перечисленных выше методов для получения экземпляра WebimSession.

Возвращает объект WebimSession с установленными параметрами с помощью остальных методов экземпляра класса.

Может выбрасывать ошибки типа SessionBuilderError.

Требует вызова методов set(accountName:) и set(location:) (в любом порядке). Также предварительно могут быть вызваны и любые другие (в любом порядке и сочетании) методы экземпляра класса SessionBuilder.

Наверх

перечисляемый тип SessionBuilderError

Значение типа соответствуют возможным ошибкам, которые могут возникнуть при вызове метода build() класса SessionBuilder.

Наверх

случай NIL_ACCOUNT_NAME

Возникает, когда при создании сессии не было передано значение названия аккаунта (или это значение nil).

Наверх

случай NIL_LOCATION

Возникает, когда при создании сессии не было передано значение названия локации (или это значение nil).

Наверх

случай INVALID_AUTHENTICATION_PARAMETERS

Возникает, когда при создании сессии была произведена попытка использовать одновременно стандартную (см. методы set(visitorFieldsJSONString jsonString:) и set(visitorFieldsJSONData jsonData:)) и собственную (см. метод set(providedAuthorizationTokenStateListener:,providedAuthorizationToken:)) системы авторизации посетителя.

Наверх

случай INVALID_REMOTE_NOTIFICATION_CONFIGURATION

Возникает, когда при создании сессии возникла неверная конфигурация push-сервиса (был задан сервис для использования при получении push-уведомлений от сервиса Webim, отличный от NONE (см. метод set(remoteNotificationSystem:) класса SessionBuilder, но не было передано значение Device Token (или значение nil) – см. метод set(deviceToken:) класса SessionBuilder).

Наверх


протокол ProvidedAuthorizationTokenStateListener

Если клиент предоставляет собственный механизм авторизации посетителя, это может быть реализовано с помощью передачи специального токена, который используется вместо посетительских полей (см. методы set(visitorFieldsJSONString jsonString:) и set(visitorFieldsJSONData jsonData:)).

В момент генерации (или получения переданного значения) этого токена, вызывается метод update(providedAuthorizationToken:). Это означает, что сервис клиента должен передать данный токен в сервис Webim.

Данный механизм – это не самодостаточная реализация. Клиентский сервис должен поддерживать и реализовывать методы передачи токена и данных посетителя в сервис Webim.

Наверх

метод экземпляра update(providedAuthorizationToken:)

Метод вызывается в двух случаях:

1. Токен клиентского механизма авторизации передан или сгенерирован и требуется его отправка в сервис Webim силами клиента.

2. От сервиса Webim получена информация о том, что используемый токен ему неизвестен. Это может случиться, например, если токен не был отправлен сервису Webim сервисом клиента или не был получен сервисом Webim. В этом случае сервису Webim необходимо предоставить токен и соответствующие ему данные посетителя.

Наверх


протокол WebimSession

Протокол, позволяющий производить манипуляции с текущей сессией.

Экземпляр класса WebimSession получается с помощью методов класса SessionBuilder.

Наверх

метод экземпляра resume()

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

Может выбрасывать ошибки типа AccessError.

Необходим для полноценного функционирования сервиса в контексте приложения.

В результате ответа сервера могут быть вызваны различные методы MessageListener, ChatStateListener, CurrentOperatorChangeListener и LocationSettingsChangeListener.

Наверх

метод экземпляра pause()

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

Может выбрасывать ошибки типа AccessError.

Для вызова метода сессия не должна находиться в деактивированном состоянии.

Наверх

метод экземпляра destroy()

Метод, который используется для деактивации сессии и экземпляра класса. После вызова данного метода, никакие методы, относящиеся к сессии использованы быть не могут.

Может выбрасывать ошибки типа AccessError.

Наверх

метод экземпляра getStream()

Метод, который необходимо вызвать для получения соответствующего сессии экземпляра MessageStream.

Для полноценного использования методов протокола MessageStream сессия не должна быть приостановлена или деактивирована (см. методы resume(), pause() и destroy()).

Наверх

метод экземляра change(location:)

Метод используется для смены названия локации в рамках существующей сессии. Вызов метода приблизительно аналогичен результату создания новой сессии с аналогичными параметрами, но с другим названием локации.

Параметр location – название локации, на которое необходимо сменить текущее значение сессии. Тип – String.

В исключительных случаях может выбрасывать неожиданные ошибки, не описанные интерфейсами SDK и не обрабатываемые методами SDK.

Для вызова метода сессия не должна находиться с приостановленном или деактивированном состоянии (см. методы resume(), pause() и destroy()).

Наверх

метод экземляра set(deviceToken:)

Метод используется для установки device token для получения push-уведомлений.

Параметр deviceToken – Device Token, использующийся для получения push-уведомлений в приложении. Тип – опциональный String в шестнадцатиричном формате, без служебных символов и пробелов.

Пример приведения значения Device Token к нужному виду из значения в формате Data, получаемом методом application(_ application:,didRegisterForRemoteNotificationsWithDeviceToken deviceToken:) класса AppDelegate приложения:

let deviceToken = deviceToken.map { String(format: «%02.2hhx», $0) }.joined()

Может выбрасывать ошибки типа AccessError.

Для вызова метода сессия не должна находиться с приостановленном или деактивированном состоянии (см. методы resume(), pause() и destroy()).

Наверх


протокол MessageStream

Экземпляр класса, с помощью которого вызываются методы протокола, в рамках сессии существует только один и получается с помощью метода getStream() экземпляра класса WebimSession. Методы протокола используются непосредственно для взаимодействия с сервисом Webim (таких как отправка и получение сообщений).

Для использования методов протокола необходимо, чтобы сессия не находилась в приостановленном или деактивированном виде (см. методы resume(), pause() и destroy() класса WebimSession).

Наверх

метод getVisitSessionState()

Возвращает текущее состояние сессии значением типа VisitSessionState.

Наверх

метод getChatState()

Метод с помощью, которого можно уточнить состояние текущего чата.

Возвращает значение перечислимого типа ChatState.

Наверх

метод getUnreadByOperatorTimestamp()

Возвращает момент времени (типа Date), после которого все сообщения чата являются непрочитанными посетителем (на момент полученного от сервера обновления).

Наверх

метод getUnreadByVisitorTimestamp()

Возвращает момент времени (типа Date), после которого все сообщения чата являются непрочитанными посетителем (на момент полученного от сервера обновления).

Наверх

метод getDepartmentList()

Возвращает список отделов массивом объектов типа Department или nil, если отделы не используются или список отделов пока не был получен.

Наверх

метод getLocationSettings()

Каждая локация может обладать индивидуальными настройками. С помощью текущего метода можно получить объект, представляющий текущие настройки локации.

Возвращает объект класса LocationSettings, соответствующий текущей сессии.

Наверх

метод getCurrentOperator()

С помощью этого метода можно уточнить информацию об актуальном операторе (если он есть) текущего чата.

Возвращает объект класса Operator или nil, если у чата в данный момент нет оператора.

Наверх

метод getLastRatingOfOperatorWith(id:)

С помощью этого метода можно уточнить текущий рейтинг (в целых числах от 0 до 5) оператора, зная ID этого оператора (см. метод getID() протокола Operator).

Параметр id – ID оператора, рейтинг которого должен вернуть метод. Тип – String.

Возвращает рейтинг оператора с ID, соответствующему значению параметра id, в целых числах от 1 до 5 или 0, если рейтинг у оператора отсутствует.

Наверх

метод rateOperatorWith(id:,byRating rating:)

С помощью этого метода можно отправить оценку оператора текущего посетителя.

Параметр id – ID оператора, оценку которого необходимо отправить сервису Webim. Тип – String.

Параметр rating – оценка оператора, которую необходимо отправить сервису Webim. Оценка должна быть целым числом от 1 до 5 (при указании иного, метод не произведет никаких действий). Тип – Int.

Может выбрасывать ошибки типа AccessError.

Наверх

метод startChat()

Метод начинает чат. В терминах сервиса Webim меняет у текущего чата состояние, представленное типом ChatState, на QUEUE.

Может выбрасывать ошибки типа AccessError.

При отправке сообщения или файла пользователем, чат начинается автоматически.

В результате может быть вызван метод changed(state previousState:,to newState:) протокола ChatStateListener.

Наверх

метод startChat(departmentKey:)

Метод начинает чат с указанием определенного отдела. В терминах сервиса Webim меняет у текущего чата состояние, представленное типом ChatState, на QUEUE.

Может выбрасывать ошибки типа AccessError.

При отправке сообщения или файла пользователем, чат начинается автоматически, но если текущее состояние VisitSessionState DEPARTMENT_SELECTION, чат необходимо начать именно с помощью данного метода.

В параметр departmentKey передается значение ключа отдела, которое может быть получено методом getKey() протокола Department.

В результате может быть вызван метод changed(state previousState:,to newState:) протокола ChatStateListener.

Наверх

метод startChat(firstQuestion:)

Метод начинает чат и одновременно посылает первое сообщение посетителя.

В терминах сервиса Webim меняет у текущего чата состояние, представленное типом ChatState, на QUEUE.

Может выбрасывать ошибки типа AccessError.

При отправке сообщения или файла пользователем, чат начинается автоматически.

В результате может быть вызван метод changed(state previousState:,to newState:) протокола ChatStateListener.

Наверх

метод startChat(departmentKey:firstQuestion:)

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

В терминах сервиса Webim меняет у текущего чата состояние, представленное типом ChatState, на QUEUE.

Может выбрасывать ошибки типа AccessError.

При отправке сообщения или файла пользователем, чат начинается автоматически, но если текущее состояние VisitSessionState DEPARTMENT_SELECTION, чат необходимо начать именно с помощью данного метода.

В параметр departmentKey передается значение ключа отдела, которое может быть получено методом getKey() протокола Department.

В результате может быть вызван метод changed(state previousState:,to newState:) протокола ChatStateListener.

Наверх

метод closeChat()

Метод отправляет сигнал сервису Webim, что посетитель закончил чат. В терминах сервиса Webim меняет у текущего чата состояние, представленное типом ChatState, на CLOSED_BY_VISITOR.

Может выбрасывать ошибки типа AccessError.

В результате может быть вызван метод changed(state previousState:,to newState:) протокола ChatStateListener.

Наверх

метод setVisitorTyping(draftMessage:)

Метод используется для отправки сигнала сервису Webim, что посетитель вводит сообщение (или прекратил его (сообщения) ввод).

При последовательном многократном вызове метода, черновик отправляется сервису Webim не с такой же частотой, а не чаще, чем один раз в секунду.

Параметр draftMessage – сообщение, которое уже ввел посетитель в соответствующее поле, но не отправил его. Тип – опциональный String, Значение параметра nil соответствует ситуации, когда посетитель прекратил ввод сообщения либо стер написанное из поля ввода.

Может выбрасывать ошибки типа AccessError.

Наверх

метод send(message:,isHintQuestion:)

Метод используется для отправки сообщения посетителя в сервис Webim.

Параметр message – отправляемое сообщение. Тип – String.

Параметр isHintQuestion используется, если приложение обладает собственным механизмом показа подсказок пользователю. Тип – опциональный Bool. В случае, если посетитель не ввел сообщение вручную, а выбрал одну из предлагаемых подсказок, значение параметра должно быть true, и false – в обратном случае. Параметр не обязательный для использования и может быть опущен.

Возвращает ID, сгенерированный случайным образом для данного сообщения, который может быть использован для идентификации данного конкретного сообщения внутри логики приложения. Тип – String.

Может выбрасывать ошибки типа AccessError.

Если существуют объекты MessageTracker и MessageListener, отправка сообщения вызовет метод added(message newMessage:,after previousMessage:) протокола MessageListener с новым сообщением со статусом SENDING перечислимого типа MessageSendStatus.

Наверх

метод send(message:)

Полностью соответствует методу send(message:,isHintQuestion:) с опущенным параметром isHintQuestion.

Наверх

метод send(file:,filename:,mimeType:,completionHandler:)

Метод используется для отправки файла от посетителя оператору.

Параметр file – сам файл в формате Data.

Параметр filename – название файла. Тип – String.

Параметр mimeTypeMIMЕ-тип передаваемого файла. Тип – String.

Параметр completionHandler – объект, реализующий методы протокола SendFileCompletionHandler. Тип опциональный.

Возвращает ID, сгенерированный случайным образом для данного сообщения, который может быть использован для идентификации данного конкретного сообщения внутри логики приложения. (Отправляемый файл тоже является типом сообщения.) Тип – String.

Может выбрасывать ошибки типа AccessError.

Если существуют объекты MessageTracker и MessageListener, отправка сообщения вызовет метод added(message newMessage:,after previousMessage:) протокола MessageListener с новым сообщением со статусом SENDING перечислимого типа MessageSendStatus.

Наверх

метод new(messageTracker messageListener:)

Метод используется для получения экземпляра класса MessageTracker.

Параметр messageListener – объект класса, реализующего методы протокола MessageListener.

Возвращает экземпляр класса MessageTracker, соответствующий текущему объекту MessageStream.

Может выбрасывать ошибки типа AccessError.

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

Наверх

метод set(visitSessionStateListener:)

Метод передает в SDK ссылку на объект, реализующий методы протокола VisitSessionStateListener.

Параметр chatStateListener – объект, реализующий методы протокола VisitSessionStateListener.

Наверх

метод set(chatStateListener:)

Метод передает в SDK ссылку на объект, реализующий методы протокола ChatStateListener.

Параметр chatStateListener – объект, реализующий методы протокола ChatStateListener.

Наверх

метод set(currentOperatorChangeListener:)

Метод передает в SDK ссылку на объект, реализующий методы протокола CurrentOperatorChangeListener.

Параметр currentOperatorChangeListener – объект, реализующий методы протокола CurrentOperatorChangeListener.

Наверх

метод set(departmentListChangeListener:)

Метод передает в SDK ссылку на объект, реализующий методы протокола DepartmentListChangeListener.

Параметр currentOperatorChangeListener – объект, реализующий методы протокола DepartmentListChangeListener.

Наверх

метод set(operatorTypingListener:)

Метод передает в SDK ссылку на объект, реализующий методы протокола OperatorTypingListener.

Параметр operatorTypingListener – объект, реализующий методы протокола OperatorTypingListener.

Наверх

метод set(locationSettingsChangeListener:)

Метод передает в SDK ссылку на объект, реализующий методы протокола LocationSettingsChangeListener.

Параметр locationSettingsChangeListener – объект, реализующий методы протокола LocationSettingsChangeListener.

Наверх

метод set(sessionOnlineStatusChangeListener:)

Метод передает в SDK ссылку на объект, реализующий методы протокола SessionOnlineStatusChangeListener.

Параметр sessionOnlineStatusChangeListener – объект, реализующий методы протокола SessionOnlineStatusChangeListener.

Наверх


протокол SendFileCompletionHandler

Объект, подчиняющийся протоколу, может быть передан в параметре completionHandler метода send(file:,filename:,mimeType:,completionHandler:) протокола MessageStream.

Наверх

метод onSuccess(messageID:)

Метод вызывается при успешной отправке файла методом send(file:,filename:,mimeType:,completionHandler:) протокола MessageStream.

Параметр messageID – ID соответствующего сообщения. Тип – String.

Наверх

метод onFailure(messageID:,error:)

Вызывается при неудачнойотправке файла методом send(file:,filename:,mimeType:,completionHandler:) протокола MessageStream.

Параметр messageID – ID соответствующего сообщения. Тип – String.

Параметр error – ошибка, воспрепятствовавшая успешной отправке файла. Тип – SendFileError.

Наверх


протокол VisitSessionStateListener

Протокол, адаптация которого позволяет отслеживать изменения VisitSessionState.

Наверх

метод changed(state previousState:,to newState:)

Метод вызывается при изменении VisitSessionState. В параметры метода передаются старое и новое значения.

Наверх


протокол DepartmentListChangeListener

Протокол, адаптация которого позволяет отслеживать изменения списка отделов.

Наверх

метод received(departmentList:)

Метод вызывается при получении нового списка отделов. В параметр метода передается массив объектов Department.

Наверх


протокол LocationSettings

Экземпляр класса, подчиняющегося протоколу, может быть получен методом getLocationSettings() объекта MessageStream.

С помощью методов данного протокола могут быть получены специфические настройки текущей локации.

Наверх

метод areHintsEnabled()

С помощью этого метода, можно узнать, предписывают ли настройки текущей локации показ подсказок посетителю при наборе нового сообщения.

Возвращает булево значение: true, если подсказки необходимо показывать, и false – в противном случае.

Наверх


протокол ChatStateListener

Протокол, методы которого реализуются каким-либо классом приложения. Объект, подчиняющийся протоколу, может быть передан в параметре chatStateListener метода set(chatStateListener:) протокола MessageStream.

Используется для отслеживания изменений состояния текущего чата.

Наверх

метод changed(state previousState:,to newState:)

Метод вызывается, когда состояние текущего чата изменилось.

Параметр previousState – предыдущее состояние чата. Тип – ChatState.

Параметр newState – новое состояние чата. Тип – ChatState.

Наверх


протокол CurrentOperatorChangeListener

Протокол, методы которого реализуются каким-либо классом приложения. Объект, подчиняющийся протоколу, может быть передан в параметре currentOperatorChangeListener метода set(currentOperatorChangeListener:) протокола MessageStream.

Используется для отслеживания изменения оператора текущего чата.

Наверх

метод changed(operator previousOperator:,to newOperator:)

Метод вызывается, когда оператор текущего чата изменился (или оператора не стало).

Параметр previousOperator – предыдущий оператор. Тип – Operator.

Параметр newOperator – новое состояние чата. Тип – опциональный Operator. Принимает значение nil в случае, если оператор покинул чат.

Наверх


протокол OperatorTypingListener

Объект, подчиняющийся протоколу, может быть передан в параметре operatorTypingListener метода set(operatorTypingListener:) протокола MessageStream.

Используется для оповещения, когда оператор начинает вводить сообщение.

Наверх

метод onOperatorTypingStateChanged(isTyping:)

Метод вызывается, когда оператор текущего чата начал вводить сообщение.

Параметр isTyping – булево значение, принимающее значение true, если оператор вводить сообщение, и false – в противном случае.

Наверх


протокол LocationSettingsChangeListener

Протокол, методы которого реализуются каким-либо классом мобильного приложения. Объект класса, подчиняющийся протоколу, может быть передан в параметре locationSettingsChangeListener метода set(locationSettingsChangeListener:) протокола MessageStream.

Используется для отслеживания изменений в текущих настройках локации.

Наверх

метод changed(locationSettings previousLocationSettings:,to newLocationSettings:)

Метод вызывается, когда настройки текущей локации изменились.

Параметр previousLocationSettings – предыдущее значение настроек текущей локации. Тип – LocationSettings.

Параметр newLocationSettings – новое значение настроек текущей локации. Тип – LocationSettings.

Наверх


протокол SessionOnlineStatusChangeListener

Протокол адаптируется сущностями мобильного приложения. Объект класса, адаптировавшего протокол может быть передан в параметре sessionOnlineStatusChangeListener метода set(sessionOnlineStatusChangeListener:) протокола MessageStream.

Используется для получения оповещений при изменении статуса сессии. Статус сессии описан в значениях перечисляемого типа SessionOnlineStatus.

Наверх

метод changed(sessionOnlineStatus previousSessionOnlineStatus:,to newSessionOnlineStatus:)

Метод вызывается при изменении статуса сессии.

Параметр previousSessionOnlineStatus – предыдущее состояние сессии. Тип – SessionOnlineStatus.

Параметр newSessionOnlineStatus – новое (полученное) состояние сессии. Тип – SessionOnlineStatus.

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

Наверх


перечисляемый тип ChatState

Возможные варианты состояния чата (см. метод getChatState() протокола MessageStream).

Начальное состояние – NONE. Если вызван метод startChat() или один из методов отправки сообщений протокола MessageStream, состояние изменяется на QUEUE. Когда оператор принимает чат в обработку, его (чата) состояние изменяется на CHATTING. Когда вызывается метод closeChat() протокола MessageStream, состояние чата изменяется на CLOSED_BY_VISITOR. Если чат был закрыт оператором – на CLOSED_BY_OPERATOR. После того, как чат был закрыт и посетителем, и оператором, его состояние возвращается в NONE. Также это происходит после долгого отсутствия активности в чате. Также чат может быть заново начат и оператором: в этом случае состояние чата принимает значение INVITATION, а после того, как посетитель напишет что-либо в ответ, состояние чата принимает значение CHATTING.

Наверх

случай CHATTING

Состояние чата, когда либо оператор взял инициированный посетителем чат в обработку, либо когда посетитель ответил на сообщение в ранее закрытом чате.

Из этого состояния чат может перейти либо в CLOSED_BY_OPERATOR, либо в CLOSED_BY_VISITOR, либо в NONE.

Наверх

случай CLOSED_BY_OPERATOR

Состояние чата, когда тот был закрыт оператором, но еще не закрыт посетителем.

Из этого состояния чат может перейти либо в NONE, либо в QUEUE, если посетитель напишет что-либо еще.

Наверх

случай CLOSED_BY_VISITOR

Состояние чата, когда тот был закрыт посетителем, но еще не закрыт оператором.

Из этого состояния чат может перейти либо в NONE, либо в QUEUE, если посетитель напишет что-либо еще.

Наверх

случай INVITATION

Состояние чата, когда тот был инициирован оператором.

Из этого состояния чат может перейти либо в NONE, либо в CHATTING.

Наверх

случай NONE

Означает отсутствие чата.

Из этого состояния чат может перейти либо в INVITATION, либо в QUEUE.

Наверх

случай QUEUE

Состояние чата, когда тот был инициирован посетителем.

Из этого состояния чат может перейти либо в NONE, либо в CHATTING, либо в CLOSED_BY_OPERATOR.

Наверх

случай UNKNOWN

Данное состояние принимает чат при создании сессии до первого обновления состояния чата, полученного от сервера.

Также это состояние может быть получено, если SDK не может его идентифицировать (например, на сервере появились новые значения состояния чата, которые текущая версия SDK не умеет обрабатывать).

Наверх


перечисляемый тип SendFileError

Возможные ошибки, которые могут быть переданы в параметр error метода onFailure(messageID:error:) протокола SendFileCompletionHandler.

Наверх

случай FILE_SIZE_EXCEEDED

Означает, что размер файла превышает максимальный размер, установленный в настройках сервера.

Наверх

случай FILE_TYPE_NOT_ALLOWED

Означает, что тип файла не входит в число разрешенных типов, установленных в настройках сервера.

Наверх


перечисляемый тип OnlineStatus

Возможные статусы онлайн.

Могут быть получены с помощью метода changed(sessionOnlineStatus previousSessionOnlineStatus:,to newSessionOnlineStatus:) протокола SessionOnlineStatusChangeListener.

Наверх

случай BUSY_OFFLINE

Оффлайн-состояние с превышенным количеством лимита чатов.

Означает, что посетитель не может отправлять сообщения вообще.

Наверх

случай BUSY_ONLINE

Онлайн-состояние с превышенным количеством лимита чатов.

Означает, что посетитель может отправлять сообщения в оффлайн-зону, но сервер может их отклонить и вернуть ошибку.

Наверх

случай OFFLINE

Означает, что посетитель может отправлять сообщения в оффлайн-зону.

Наверх

случай ONLINE

Означает, что посетитель может отправлять сообщения без каких-либо ограничений.

Наверх

случай UNKNOWN

Означает, что либо SDK пока не получил первое обновление статуса сессии от сервиса Webim, либо статус сессии не поддерживается в текущей версии SDK.

Наверх


перечисляемый тип VisitSessionState

Возможные статусы сессии.

Наверх

случай CHAT

Состояние чата.

Наверх

случай DEPARTMENT_SELECTION

Означает, что была произведена попытка начать чат без выбора отдела, а на сервере установлено, что выбор отделов обязателен.

Сессия ожидает начало чата с помощью метода startChat(departmentKey:).

Наверх

случай IDLE

Сессия активна, но чат пока не был начат.

Наверх

случай IDLE_AFTER_CHAT

Сессия активна, но чат был уже закрыт.

Наверх

случай OFFLINE_MESSAGE

Оффлайн.

Наверх

случай UNKNOWN

Статус еще не был получен или не поддерживается текущей версией WebimClientLibrary.

Наверх


протокол MessageTracker

Экземпляр класса, подчиняющегося протоколу, может быть получен с помощью метода new(messageTracker messageListener:) протокола MessageStream.

Методы протокола используются для манипуляций с сообщениями, существующими в истории сообщений.

Наверх

метод getLastMessages(byLimit limitOfMessages:,completion:)

Метод используется для запроса сообщений с начала истории сообщений.

Параметр limitOfMessages – количество следующих сообщений, не более которого должен запросить метод. Тип – Int, значение может быть любым положительным больше 1 (если передано значение меньше 1, метод не выполнит никакой работы).

Параметр completion – замыкание, которое выполняется после завершения выполнения метода. Замыкание содержит один параметр типа массив Message и не имеет возвращаемого типа. Как правило, в параметр передается ожидаемый набор сообщений из истории сообщений. Если параметр не содержит ни одного объекта типа Message (массив пуст) – это означает, что достигнут конец истории сообщений.

Каждый последующий вызов данного метода может быть совершен только после того, как предыдущий запрос был завершен (было вызвано замыкание).

Может выбрасывать ошибки типа AccessError.

Метод не выполнит никакой работы, если соответствующий объект MessageTracker был деактивирован (см. метод destroy()).

Наверх

метод getNextMessages(byLimit limitOfMessages:,completion:)

Метод используется для запроса сообщений из истории сообщений, которая еще не отображается в текущей ленте сообщений.

Параметр limitOfMessages – количество следующих сообщений, не более которого должен запросить метод. Тип – Int, значение может быть любым положительным больше 1 (если передано значение меньше 1, метод не выполнит никакой работы).

Параметр completion – замыкание, которое выполняется после завершения выполнения метода. Замыкание содержит один параметр типа массив Message и не имеет возвращаемого типа. Как правило, в параметр передается ожидаемый набор сообщений из истории сообщений. Если параметр не содержит ни одного объекта типа Message (массив пуст) – это означает, что достигнут конец истории сообщений.

Каждый последующий вызов данного метода может быть совершен только после того, как предыдущий запрос был завершен (было вызвано замыкание).

Может выбрасывать ошибки типа AccessError.

Метод не выполнит никакой работы, если соответствующий объект MessageTracker был деактивирован (см. метод destroy()).

Наверх

метод getAllMessages(completion:)

Метод используется для запроса сразу всей истории сообщений.

Параметр completion – замыкание, которое выполняется после завершения выполнения метода. Замыкание содержит один параметр типа массив Message и не имеет возвращаемого типа. Как правило, в параметр передается ожидаемый набор сообщений из истории сообщений. Если параметр не содержит ни одного объекта типа Message (массив пуст) – это означает, что достигнут конец истории сообщений.

Может выбрасывать ошибки типа AccessError.

Метод не выполнит никакой работы, если соответствующий объект MessageTracker был деактивирован (см. метод destroy()).

Наверх

метод resetTo(message:)

Объект MessageTracker хранит текущий диапазон сообщений. Вызов данного метода может «сбросить» предел, до которого объект хранит историю сообщений, до определенного сообщения.

Параметр message – сообщение, до которого необходимо «сбросить» предел хранимой истории сообщений. Тип – Message.

Может выбрасывать ошибки типа AccessError.

Метод может быть вызван только после того, как предыдущее обращение к объекту MessageTracker вернуло результат, иначе метод не выполнит никакой работы.

Наверх

метод destroy()

Деактивирует текущий объект MessageTracker, после чего никакие методы протокола не могут быть использованы.

Может выбрасывать ошибки типа AccessError.

Наверх


протокол MessageListener

Протокол должен быть адаптирован каким-либо классом приложения. Методы протокола вызываются при изменениях в ленте сообщений.

Наверх

метод added(message newMessage:,after previousMessage:)

Метод вызывается при добавлении сообщений в текущую ленту.

Важно, что вызов метода не является признаком получения именно нового сообщения: это логическая вставка сообщений в ленту. Например, при первом успешном соединении с сервером, SDK получает всю историю сообщений. Если она содержит сообщения, находящиеся в уже отображаемом в ленте временном промежутке, на каждое такое сообщение также будет вызван этот метод.

Параметр newMessage – полученное сообщение. Тип – Message.

Параметр previousMessage – сообщение, после которого необходимо вставить полученное сообщение. Тип – опциональный Message. Если значение данного параметра nil, полученное сообщение необходимо вставить в конце списка.

Наверх

метод removed(message:)

Метод вызывается при удалении сообщения из ленты.

Параметр message – удаленное сообщение. Тип – Message.

Наверх

метод removedAllMessages()

Метод вызывается при удалении всех сообщений из ленты.

Наверх

метод changed(message oldVersion:,to newVersion:)

Метод вызывается при изменении какого-либо сообщения.

Сообщения как таковые не меняются: происходит замена одного объекта другим. Поэтому при вызове данного метода можно сравнивать поля сообщения, чтобы выяснить, какие из них отличаются.

Параметр oldVersion – прежний объект сообщения. Тип – Message.

Параметр newVersion – новый объект сообщения. Тип – Message.

Наверх


протокол Message

Протокол является абстракцией, представляющей отдельное сообщение внутри SDK.

Объекты Message могут быть получены в вызовах методов протокола MessageListener.

Объекты Message – неизменяемые. Изменения каких-либо его полей создает новый объект. На идентичность полей два объекта Message можно проверить методом isEqual(to:). Логическое соответствие объектов сообщения можно проверить, сравнив их ID (см. метод getID()).

Наверх

метод getAttachment()

С помощью этого метода можно получить вложение, если это файл, отправленный посетителем или оператором (MessageType FILE_FROM_OPERATOR или FILE_FROM_VISITOR).

Возвращает экземпляр класса MessageAttachment или nil, если файл находится в процессе отправки.

Наверх

метод getData()

С помощью этого метода можно получить произвольный словарь, формируемый сервером, при использовании MessageType ACTION_REQUEST.

Возвращает словарь типа [String : Any?] или nil, если он отсутствует.

Наверх

метод getID()

С помощью этого метода можно получить уникальный ID cообщения.

Возвращает ID сообщения. Тип – String.

Наверх

метод getOperatorID()

С помощью этого метода можно получить ID оператора, отправившего сообщение.

Возвращает ID оператора или nil, если сообщение было отправлено не оператором. Тип – опциональный String.

Наверх

метод getSenderAvatarFullURL()

С помощью этого метода можно получить URL для загрузки аватара отправителя сообщения (если есть).

Возвращает полный URL аватара отправителя сообщения или nil, если аватар отсутствует. Тип – опциональный String.

Наверх

метод getSenderName()

С помощью этого метода можно получить имя отправителя сообщения.

Возвращает имя отправителя сообщения. Тип – String.

Наверх

метод getSendStatus()

С помощью этого метода можно получить статус отправки сообщения.

Возвращает значение перечисляемого типа MessageSendStatus.

Наверх

метод getText()

С помощью этого метода можно получить текст сообщения.

Возвращает текст сообщения. Тип – String.

Наверх

метод getTime()

С помощью этого метода можно получить время отправки сообщения (тип – Date).

Наверх

метод getType()

С помощью этого метода можно получить тип сообщения.

Возвращает значение перечисляемого типа MessageType.

Наверх

метод isEqual(to message:)

С помощью этого метода можно узнать, идентичны ли два сообщения.

Пример использования:

if messageOne.isEqual(to: messageTwo) { /* … */ }

Где messageOne и messageTwo – любые экземпляры типа Message.

Параметр message – сообщение, с которым сравнивается сообщение, на котором вызывается метод. Тип – Message.

Возвращает значение булевой переменной: true, если поля сообщений идентичны, и false – если это не так.

Наверх


протокол MessageAttachment

Протокол является абстракцией, представляющей файловое вложение в сообщение.

Объект MessageAttachment может быть получен в помощью метода getAttachment() протокола Message.

Наверх

метод getContentType()

Метод, с помощью которого может быть получен MIME-тип вложения.

Возвращает MIME-тип вложения в текстовом виде или nil. Тип – опциональный String.

Наверх

метод getFileName()

Метод, с помощью которого может быть получено имя файла вложения.

Возвращает имя файла вложения в текстовом виде или nil. Тип – опциональный String.

Наверх

метод getImageInfo()

Метод, с помощью которого может быть получена информация о изображении, если вложение им является.

Возвращает объект ImageInfo или nil, если вложенный файл не является изображением.

Наверх

метод getSize()

Метод, с помощью которого может быть получен размер файла вложения.

Возвращает размер файла вложения в байтах или nil. Тип – опциональный Int64.

Наверх

метод getURL()

Метод, с помощью которого может быть получена ссылка для скачивания файла вложения. Ссылка действительна только для текущей сессии.

Возвращает URL файла вложения или nil.

Наверх


протокол ImageInfo

Протокол является абстракцией, представляющей информацию о вложении, если оно является изображением.

Объект ImageInfo может быть получен с помощью метода getImageInfo() протокола MessageAttachment.

Наверх

метод getThumbURL()

Метод позволяет получить URL для скачивания превью изображения. Максимальные размеры по вертикали и горизонтали – 300 пикселей, но могут быть изменены на сервере. Для того, чтобы узнать точные размеры превью до тех пор, пока изображение еще не загружено, можно использовать следующий код:

let THUMB_SIZE = 300

var width = imageInfo.getWidth()

var height = imageInfo.getHeight()

if (height > width) {

width = (THUMB_SIZE * width) / height

height = THUMB_SIZE

} else {

height = (THUMB_SIZE * height) / width

width = THUMB_SIZE

}

Возвращает URL для скачивания превью изображения. Полученная ссылка действительна только для текущей сессии.

Наверх

метод getHeight()

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

Возвращает высоту изображения в пикселях или nil. Тип – опциональный Int.

Наверх

метод getWidth()

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

Возвращает ширину изображения в пикселях или nil. Тип – опциональный Int.

Наверх


перечисляемый тип MessageType

Используется для определения типа сообщения (см. метод getType() протокола Message).

Наверх

случай ACTION_REQUEST

Сообщение, содержащее словарь с произвольными данными, который будет обработан приложением исходя из определяемой клиентом логики (см. метод getData() протокола Message).

Наверх

случай CONTACTS_REQUEST

Сообщение, которое поступает после того, как оператор нажал кнопку запроса контактных данных.

В данный момент автоматической поддержки данного функционала нет, всяк полезная нагрузка данного и ответного сообщения пересылается в тексте сообщения (см. метод getText() протокола Message).

Наверх

случай FILE_FROM_OPERATOR

Файл, отправленный оператором.

Наверх

случай FILE_FROM_VISITOR

Файл, отправленный посетителем.

Наверх

случай INFO

Автоматически сгенерированное на сервере системное сообщение (например, приветствие в начале чата).

Наверх

случай OPERATOR

Текстовое сообщение от оператора.

Наверх

случай OPERATOR_BUSY

Системное сообщение, указывающее на то, что оператор в данный момент занят.

Наверх

случай VISITOR

Текстовое сообщение от посетителя.

Наверх


Перечисляемый тип MessageSendStatus

Используется для определения статуса отправки сообщения (см. метод getSendStatus() протокола Message).

Наверх

случай SENDING

Означает любое состояние сообщения до тех пор, пока оно не будет получено, обработано и отправлено всем получателям сервером.

Наверх

случай SENT

Означает любое состояние сообщения после событий, перечисленных в описании значения SENDING.

Наверх

протокол Department

Представление одного отдела. Предоставляет методы получения информации об отделе.

Объекты Department могут быть получены с помощью адаптации протокола DepartmentListChangeListener либо в результате вызова метода getDepartmentList() протокола MessageStream.

Наверх

метод getKey()

Ключ отдела необходим для начала чата с определенным отделом (метод startChat(departmentKey:) протокола MessageStream).

Тип возвращаемого значения – String.

Наверх

метод getName()

Возвращает публичное имя отдела. Тип возвращаемого значения – String.

Наверх

метод getDepartmentOnlineStatus()

Возвращает онлайн-статус отдела. Тип возвращаемого значения – DepartmentOnlineStatus.

Наверх

метод getOrder()

Возвращает номер, представляющий порядок вывода отдела в списке. Более высокое число означает более высокий приоритет вывода отдела в списке.

Тип возвращаемого значения – Int.

Наверх

метод getLocalizedNames()

Возвращает словарь локализованных имен отдела, если таковой существует.

Тип возвращаемого значения – [String : String]. Ключ – название локали, значение – соответствующее локали название отдела.

Наверх

метод getLogo()

Возвращает URL логотипа отдела (если таковой существует).

Наверх

перечисляемый тип DepartmentOnlineStatus

Возможные статусы отдела.

Могут быть получены в результате вызова метода getDepartmentOnlineStatus() протокола Department.

Наверх

случай BUSY_OFFLINE

Оффлайн, состояние чатов превышено.

Наверх

случай BUSY_ONLINE

Онлайн, состояние чатов превышено.

Наверх

случай OFFLINE

Посетитель может отправлять оффлайн-сообщения.

Наверх

случай ONLINE

Посетитель может отправлять онлайн-сообщения.

Наверх

случай UNKNOWN

Текущий статус не поддерживается данной версией WebimClientLibrary.

Наверх


протокол Operator

Объект протокола – это абстрактное представление каждого конкретного оператора чата.

Объекты протокола Operator могут быть получены в методах протокола CurrentOperatorChangeListener и методом getCurrentOperator() протокола MessageStream.

Наверх

метод getID()

Метод позволяет получить ID конкретного оператора.

Возвращает ID конкретного оператора. Тип – опциональный String.

Наверх

метод getName()

Метод позволяет получить имя конкретного оператора.

Возвращает имя конкретного оператора. Тип – опциональный String.

Наверх

метод getAvatarURL()

Метод позволяет получить URL для скачивания аватара конкретного оператора (если есть).

Возвращает URL для скачивания аватара конкретного оператора или nil.

Наверх


протокол WebimRemoteNotification

Объект протокола – это абстрактное представление конкретного push-уведомления, полученного приложением от сервиса Webim.

Объекты протокола WebimRemoteNotification могут быть получены с помощью метода parse(remoteNotification:) класса Webim.

Наверх

метод getType()

С помощью этого метода можно уточнить полезную информацию конкретного объекта WebimRemoteNotification.

Возвращает значение перечисляемого типа NotificationType.

Наверх

метод getEvent()

С помощью этого метода можно уточнить предполагаемое действие, которое подразумевает получение данного конкретного объекта WebimRemoteNotification.

Возвращает значение перечисляемого типа NotificationEvent или nil.

Наверх

метод getParameters()

С помощью этого метода можно уточнить полезную нагрузку конкретного объекта WebimRemoteNotification, зависящую от его типа и содержащуюся в массиве.

Возвращает массив типа String. Возможные варианты содержания массива – см. в описании перечисляемого типа NotificationType.

Наверх


перечисляемый тип NotificationType

Значения типа указывают на тип полезной информации, заключающейся в конкретном push-уведомдлении – могут быть получены с помощью метода getType() протокола WebimRemoteNotification.

Наверх

случай OPERATOR_ACCEPTED

Означает событие, когда оператор подключился к чату.

Словарь параметров (см. метод getParameters() протокола WebimRemoteNotification) в этом случае содержит только одно значение – имя оператора.

Наверх

случай OPERATOR_FILE

Означает событие, когда оператор прислал файл в чат.

Словарь параметров (см. метод getParameters() протокола WebimRemoteNotification) в этом случае содержит два значения – имя оператора и название файла.

Наверх

случай OPERATOR_MESSAGE

Означает событие, когда оператор прислал сообщение в чат.

Словарь параметров (см. метод getParameters() протокола WebimRemoteNotification) в этом случае содержит два значения – имя оператора и текст сообщения.

Наверх


перечисляемый тип NotificationEvent

Означает событие, которое подразумевает тип действия, ожидаемого от приложения при получении данного конкретного push-уведомления – могут быть получены с помощью метода getEvent() протокола WebimRemoteNotification.

Наверх

случай ADD

Добавление информации, содержащейся в данном push-уведомлении (см. методы getType() и getParameters() протокола WebimRemoteNotification).

Наверх

случай DELETE

Удаление информации, содержащейся в данном push-уведомлении (см. методы getType() и getParameters() протокола WebimRemoteNotification).

Наверх


протокол FatalErrorHandler

Методы протокола вызываются при необходимости обработке ошибок, которые может возвращать сервис Webim в процессе работы. Описания ошибок см. в значениях перечисляемого типа FatalErrorType.

Наверх

метод on(error:)

Вызывается при получении ошибки сервиса Webim.

В параметр передается объект протокола WebimError.

Необходимо иметь в виду, что метод вызывается не из главного потока!

Наверх


перечисляемый тип FatalErrorType

Соответствует значениям возможных ошибок, которые могут возникать в работе сервиса Webim (см. метод getErrorType() протокола WebimError).

Большинство из них являются фатальными и вызывают уничтожение объекта сессии.

Наверх

случай ACCOUNT_BLOCKED

Означает, что аккаунт клиент в сервисе Webim заблокирован (например, за неуплату).

Возникновение ошибки не зависит от действий посетителя, и возможное поведение приложение в случае возникновения данной ошибки представляется, как предложение посетителю попробовать воспользоваться чатом позднее.

Вызывает уничтожение сессии.

Наверх

случай NO_CHAT

Возникает при попытке отправить некоторые запросы на действие в чате, если чат не существует. Например, см. метод rateOperatorWith(id:,byRating rating:).

Наверх

случай PROVIDED_VISITOR_EXPIRED

Означает, что предоставленные при создании сессии пользовательские данные (см. методы set(visitorFieldsJSONString jsonString:) и set(visitorFieldsJSONData jsonData:) класса SessionBuilder) более недействительны.

Предлагаемое поведение приложения – генерирование новых пользовательских данных и создание нового экземпляра сессии.

Вызывает уничтожение сессии.

Наверх

случай UNKNOWN

Означает возникновение какой-либо неожиданной и недокументированной ошибки.

Вызывает уничтожение сессии.

Наверх

случай VISITOR_BANNED

Возникает, когда пользователь с переданными данными (см. методы set(visitorFieldsJSONString jsonString:) и set(visitorFieldsJSONData jsonData:) класса SessionBuilder) был по какой-либо причине заблокирован оператором.

Вызывает уничтожение сессии.

Наверх

случай WRONG_PROVIDED_VISITOR_HASH

Означает ошибку при генерации пользовательских данных. Не зависит от действий пользователя, а сигнализирует об ошибке в алгоритме генерации данных приложением.

Вызывает уничтожение сессии.

Наверх


протокол WebimError

Объекты WebimError передаются в параметр error метода on(error:) протокола FatalErrorHandler.

Методы протокола предназначены для обработки фатальных ошибок, которые могут возникать при работе с сервисом Webim.

Наверх

метод getErrorType()

Метод предназначен для получения конкретного типа возникшей ошибки.

Возвращает значение перечисляемого типа FatalErrorType.

Наверх

метод getErrorString()

Метод может быть вызван для получения текстового представления возникшей ошибки.

Возвращает тектовое представление возникшей ошибки. Тип – String.

Наверх


перечисляемый тип AccessError

Значение типа соответствуют ошибкам, которые могут выбрасываться некоторыми методами протоколов WebimSession, MessageStream и MessageTracker.

Наверх

случай INVALID_THREAD

Возникает, когда метод был вызван не из потока, в котором был создан экземпляр сессии.

Наверх

случай INVALID_SESSION

Возникает при попытке использования методов недействительного экземпляра сессии (например, после того, как на нем был вызван метод destroy()).

Наверх


протокол WebimLogger

Протокол, предоставляющий методы для реализации «логирования» сетевой активности WebimClientLibrary.

Механизм может быть полезен, например, при «дебаге» «продакшен»-релизов, в которых не доступны «дебаг»-логи.

Наверх

метод log(entry:)

Метод, который вызывается автоматически при выходе новой записи для лога сетевой активности WebimClientLibrary.

Новая запись передается в параметре entry (тип – String).

Наверх

 

Назад