Перейти к содержанию

Дополнительные возможности Webim Mobile SDK v3 для iOS

В данной статье приведены недоступные по умолчанию возможности Webim Mobile SDK для iOS. Для их подключения обратитесь в службу технической поддержки

N.B.

Эта статья является дополнением основного справочника по Webim Mobile SDK для iOS.

Класс Webim

Метод класса newFAQBuilder()

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

Класс FAQBuilder

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

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

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

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

Возвращает тот же экземпляр класса FAQBuilder, но с установленным названием аккаунта. Для получения экземпляра FAQ вызов метода является обязательным.

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

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

Параметр application — название приложения клиента в системе Webim.

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

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

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

Параметр departmentKey — название приложения клиента в системе Webim.

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

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

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

Параметр language — язык клиента в системе Webim.

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

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

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

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

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

Требует вызова метода set(accountName:).


Протокол FAQ

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

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

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

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

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

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

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

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

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

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

Метод экземпляра getCategory(id:completionHandler:)

Метод, который используется для получения объекта класса FAQCategory через completionHandler.

Параметр id — ID категории блока часто задаваемых вопросов. Тип — String.

Параметр completionHandler — замыкание, которое выполняется после завершения выполнения метода. При успешном завершении работы метода замыкание принимает один параметр типа FAQCategory, при неуспешном — параметр типа FAQGetCompletionHandlerError, и не имеет возвращаемого типа.

Для правильной работы метода требуется вызов метода resume().

Метод экземпляра getCategoriesForApplication(completionHandler:)

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

Параметр completionHandler — замыкание, которое выполняется после завершения выполнения метода. При успешном завершении работы метода замыкание принимает массив идентификаторов категорий типа String, при неуспешном — параметр типа FAQGetCompletionHandlerError, и не имеет возвращаемого типа.

Для правильной работы метода требуется вызов метода resume().

Метод экземпляра getCachedCategory(id:completionHandler:)

Метод, который используется для получения объекта класса FAQCategory через completionHandler из сохранённого кэша.

Параметр id — ID категории блока часто задаваемых вопросов. Тип — String.

Параметр completionHandler — замыкание, которое выполняется после завершения выполнения метода. При успешном завершении работы метода замыкание принимает один параметр типа FAQCategory, при неуспешном — параметр типа FAQGetCompletionHandlerError, и не имеет возвращаемого типа.

Для правильной работы метода требуется вызов метода resume().

Метод экземпляра getItem(id:openFrom:completionHandler:)

Метод, который используется для получения объекта класса FAQItem через completionHandler.

Параметр id — ID страницы блока часто задаваемых вопросов. Тип — String.

Параметр openFrom — запрос статьи из определённого источника. Тип — опциональный FAQItemSource.

Параметр completionHandler — замыкание, которое выполняется после завершения выполнения метода. При успешном завершении работы метода замыкание принимает один параметр типа FAQItem, при неуспешном — параметр типа FAQGetCompletionHandlerError, и не имеет возвращаемого типа.

Для правильной работы метода требуется вызов метода resume().

Метод экземпляра getCachedItem(id:openFrom:completionHandler:)

Метод, который используется для получения объекта класса FAQItem через completionHandler из кэша.

Параметр id — ID страницы блока часто задаваемых вопросов. Тип — String.

Параметр openFrom — запрос статьи из определённого источника. Тип — опциональный FAQItemSource.

Параметр completionHandler — замыкание, которое выполняется после завершения выполнения метода. При успешном завершении работы метода замыкание принимает один параметр типа FAQItem, при неуспешном — параметр типа FAQGetCompletionHandlerError, и не имеет возвращаемого типа.

Для правильной работы метода требуется вызов метода resume().

Метод экземпляра funcgetStructure(id:completionHandler:)

Метод, который используется для получения объекта класса FAQStructure() через completionHandler.

Параметр id — ID вершины, которая будет корнем дерева (структуры) блока часто задаваемых вопросов. Тип — String.

Параметр completionHandler — замыкание, которое выполняется после завершения выполнения метода. При успешном завершении работы метода замыкание принимает один параметр типа FAQStructure(), при неуспешном — параметр типа FAQGetCompletionHandlerError, и не имеет возвращаемого типа.

Для правильной работы метода требуется вызов метода resume().

Метод экземпляра getCachedStructure(id:completionHandler:)

Метод, который используется для получения объекта класса FAQStructure() через completionHandler из кэша.

Параметр id — ID вершины, которая будет корнем дерева (структуры) блока часто задаваемых вопросов. Тип — String.

Параметр completionHandler — замыкание, которое выполняется после завершения выполнения метода. При успешном завершении работы метода замыкание принимает один параметр типа FAQStructure(), при неуспешном — параметр типа FAQGetCompletionHandlerError, и не имеет возвращаемого типа.

Для правильной работы метода требуется вызов метода resume().

Метод экземпляра func like(item:completionHandler:)

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

Параметр item — страница, которой необходимо поставить оценку. Тип — FAQItem.

Параметр completionHandler — замыкание, которое выполняется после завершения выполнения метода. При успешном завершении работы метода замыкание принимает один параметр типа FAQItem, при неуспешном — параметр типа FAQGetCompletionHandlerError, и не имеет возвращаемого типа.

Для правильной работы метода требуется вызов метода resume().

Метод экземпляра dislike(item:completionHandler:)

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

Важно: для правильной работы метода требуется вызов метод resume().

Параметр item — страница, которой необходимо поставить оценку. Тип — FAQItem.

Параметр completionHandler — замыкание, которое выполняется после завершения выполнения метода. При успешном завершении работы метода замыкание принимает один параметр типа FAQItem, при неуспешном — параметр типа FAQGetCompletionHandlerError, и не имеет возвращаемого типа.

Для правильной работы метода требуется вызов метода resume().

Метод экземпляра search(query:category:limitOfItems:completionHandler:)

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

Параметр query — запрос, по которому осуществляется поиск. Тип — String.

Параметр category — ID категории, в которой осуществляется поиск. Тип — String.

Параметр limitOfItems — число, не больше которого нужно вернуть статей.

Параметр completionHandler — замыкание, которое выполняется после завершения выполнения метода. При успешном завершении работы метода замыкание принимает один параметр типа FAQSearchItem, при неуспешном — параметр типа FAQGetCompletionHandlerError, и не имеет возвращаемого типа.

Для правильной работы метода требуется вызов метода resume().


Протокол FAQCategory

Представление категории блока часто задаваемых вопросов. Предоставляет методы получения информации о категории.Объекты FAQCategory могут быть получены с помощью completionHandler в методах getCategory(id:completion:) и getCachedCategory(id:completionHandler:).

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

Возвращает идентификатор категории. Тип — String.

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

Возвращает заголовок категории. Тип — String.

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

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

Возвращает страницы, принадлежащих категории. Тип — FAQItem.

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

Категория содержит подкатегории. Для удобства данный метод возвращает информацию о подкатегориях без её страниц и подкатегорий.

Возвращает информацию о подкатегориях, принадлежащих категории. Тип — FAQCategoryInfo.


Протокол FAQItem

Представление страницы блока часто задаваемых вопросов. Предоставляет методы получения информации о странице. Объекты FAQItem могут быть получены с completionHandler функции getItem(id:completionHandler:).

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

Возвращает идентификатор страницы. Тип — String.

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

Возвращает заголовок страницы. Тип — String.

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

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

Возвращает идентификаторы категорий, которым принадлежит страница. Тип — String.

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

У страницы есть набор тэгов.

Возвращает список тэгов, которыми отмечена страница. Тип — String.

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

Возвращает содержание страницы. Тип — String.

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

Страница содержит количество отметок «Нравится».

Возвращает количество отметок «Нравится» страницы. Тип — Int.

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

Страница содержит количество отметок «Не нравится».

Возвращает количество отметок «Не нравится» страницы. Тип — Int.

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

Страница может быть отмечена пользователем.

Возвращает оценку пользователя. Тип — UserRate.


Протокол FAQCategoryInfo

Представление информации о категории блока часто задаваемых вопросов. Предоставляет методы получения идентификатора и заголовка категории. Объекты FAQCategoryInfo могут быть получены с помощью метода getSubcategories().

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

Возвращает идентификатор категории. Тип — String.

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

Возвращает заголовок категории. Тип — String.


Протокол FAQSearchItem

Краткая информация о страницах, полученных в результате поиска по ключевому слову.

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

Возвращает идентификатор страницы. Тип — String.

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

Возвращает заголовок страницы. Тип — String.

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

У страницы есть оценка поиска. Чем больше оценка, тем больше страница подходит под поисковой запрос. Возвращает оценку поиска. Тип — Double.


Протокол FAQStructure

Представление дерева (структуры) блока часто задаваемых вопросов. Предоставляет методы получения информации о дереве блока часто задаваемых вопросов.

Объекты FAQStructure могут быть получены с помощью completionHandler метода getStructure(id:completionHandler:).

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

У дерева есть корневой элемент.

Возвращает идентификатор корневого элемента дерева. Тип — String.

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

Возвращает заголовок корня. Тип — String.

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

Корень дерева может быть категорией или страницей.

Возвращает тип корневого элемента. Тип — RootType.

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

Возвращает поддеревья, корнями которых являются прямые потомки корня дерева (структуры). Тип — FAQStructure.


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

Страница может быть отмечена пользователем.

Случай like

Пользователю понравилась страница.

Случай dislike

Пользователю не понравилась страница.

Случай noRate

Страница не оценена пользователем.


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

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

Случай invalidThread

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

Случай invalidFaq

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


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

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

Случай nilAccountName

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


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

Возможные ошибки, которые могут выбрасывать методы протокола FAQ.

Случай ERROR

Возникшая ошибка.


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

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

Статью запрашивают из поиска.

Случай tree

Статью запрашивают из структуры или категории.


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

Возможные типы корня дерева блока часто задаваемых вопросов (см. метод getType() протокола FAQStructure).

Случай item

Корень дерева является страницей.

Случай category

Корень дерева является категорией.

случай unknown

Корень дерева имеет неизвестный тип для данной версии SDK.


Класс SessionBuilder

Метод set(prechat:)

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

Параметр prechat — поля с дополнительной информацией в формате JSON. Тип параметра — String.

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

Метод set(multivistorSection:)

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

Тип параметра multivisitorSectionString.

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

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

Метод set(onlineStatusRequestFrequencyInMillis:)

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

Параметр onlineStatusRequestFrequencyInMillisInt64.

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


Протокол WebimSession

Метод change(location:)

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

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

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

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


Интерефейс Message

Метод getSticker()

Возвращает объект типа Sticker.

Не выбрасывает исключений.

Метод canVisitorReact()

Метод возвращает true в случае, если посетитель может отреагировать на сообщение, в противном случае - false.

Не выбрасывает исключений.

Метод canVisitorChangeReaction()

Метод getVisitorReaction()


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

Случай externalChecks

Файл проверяется сервером.


Интерфейс MessageStream

Метод rateOperatorWith(id:note:byRating:completionHandler:)

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

Параметр id — ID оператора, оценку которого необходимо отправить сервису Webim. Тип — String. Опциональный: если передать nil, будет отправлена оценка текущему оператору чата (если есть).

Параметр note — комментарий к оценке оператора, который необходимо отправить сервису Webim. Максимальная длина 2000 символов. Тип — опциональный String.

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

Параметр completionHandler — объект RateOperatorCompletionHandler.

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

Внимание!

Реализация механизма оценки оператора в чате остаётся за разработчиками мобильного приложения!

Метод respondSentryCall(id:)

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

Параметр id — ID сообщения о переводе на дежурного оператора. Тип — String.

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

Метод searchStreamMessagesBy(query:completionHandler:)

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

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

Параметр query — запрос для поиска. Тип — String.

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

Метод set(prechatFields:)

Отправляет дополнительные поля на сервер.

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

Параметр prechatFields — дополнительные поля. Тип — String.

Метод set(surveyListener:)

С помощью этого метода можно установить объект SurveyListener.

Параметр surveyListener — объект, реализующий интерфейс SurveyListener.

Метод set(helloMessageListener)

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

Параметр helloMessageListener — объект, реализующий интерфейс HelloMessageListener.

Метод send(message:data:completionHandler:)

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

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

Максимальная длина сообщения — 32000 символов. Более длинные сообщения будут обрезаны сервером при их получении.

Параметр data используется для передачи произвольного словаря с параметрами сообщения на сервер (если версия сервера поддерживает данный функционал). Ключи словаря должны быть типа String, значения — любого «стандартного» типа.

Параметр completionHandler — объект DataMessageCompletionHandler либо nil.

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

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

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

Метод send(uploadedFiles:completionHandler:)

Метод, с помощью которого можно отправить файлы на сервер Webim. Тип — UploadedFile.

Параметр uploadedFile — список файлов которые необходимо отправить.

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

Метод send(surveyAnswer:completionHandler:)

С помощью этого метода можно отправить ответ на текущий вопрос, полученный с помощью метода SurveyListener.on(nextQuestion: SurveyQuestion).

Параметр surveyAnswer — ответ, для вопроса типа 'stars' — ответом будет являться целое число от 1 до 5, определяющее оценку оператора. Для вопроса типа 'radio' ответ — это индекс элемента в массиве options, начиная с 1. Для вопроса типа 'comment' ответ — это строчка, представляющая комментарий пользователя. Тип — String.

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

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

Метод uploadFilesToServer(file:filename:mimeType:completionHandler:)

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

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

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

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

Метод deleteUploadedFiles(fileGuid:completionHandler:)

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

Параметр fileGuid — id удаляемого файла. Тип — String.

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

Метод sendSticker(withId:completionHandler:)

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

Параметр withId — ID стикера, который необходимо отправить сервису Webim. Тип — int.

Параметр completionHandler — объект, реализующий интерфейс SendStickerCompletionHandler. Тип опциональный.

Метод autocomplete(text:completionHandler)

Метод возвращает подсказки.

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

Параметр text — текст подсказки. Тип —String.

Параметр completionHandler — объект, реализующий интерфейс AutocompleteCompletionHandler. Тип опциональный.

Метод react(message:reaction:completionHandler:)

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

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

Параметр message — сообщение для реакции. Тип — Message.

Параметр reaction — реакция пользователя. Тип — ReactionString.

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

Метод updateWidgetStatus(data:)

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

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

Параметр data — строка в формате JSONс новым статусом виджета. Тип — String.

Метод closeSurvey(completionHandler:)

С помощью данного метода можно закрыть опрос.

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

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

Метод sendGeolocation(latitude:longitude:completionHandler:)

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

Параметр latitude – широта. Тип - Double.

Параметр longitude - долгота. Тип - Double.

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

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

Метод clearHistory()

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


Протокол Operator

Метод getInfo()

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

Возвращает дополнительную информацию о конкретном операторе. Тип — опциональный String.


Протокол SendFilesCompletionHandler

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

Метод onSuccess(messageID:)

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

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

Метод onFailure(messageID:error:)

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

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

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


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

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

Случай fileNotFound

Файл не найден.

Случай maxFilesCountPerMessage

Максимальное число файлов для сообщения.

Случай unknown

Неизвестная ошибка.


Протокол DeleteUploadedFileCompletionHandler

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

Метод onSuccess()

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

Метод onFailure(error:)

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

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


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

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

Случай fileNotFound

Файл не найден.

Случай fileHasBeenSent

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

Случай unknown

Неизвестная ошибка.


Протокол SendStickerCompletionHandler

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

Метод onSuccess()

Метод вызывается при успешной отправке стикера методом sendSticker(withId:completionHandler:) протокола MessageStream.

Метод onFailure(error:)

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

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


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

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

Случай noChat

Чат не найден.

Случай noStickerId

ID стикера не установлен.


Протокол AutocompleteCompletionHandler

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

Метод onSuccess()

Метод вызывается при успешной отправки подсказки методом autcomplete(text:completionHandler) протокола MessageStream.

Метод onFailure(error:)

Вызывается при неудачной отправке подсказки методом autcomplete(text:completionHandler) протокола MessageStream.

Параметр error — ошибка, воспрепятствовавшая успешной отправке подсказки. Тип — AutocompleteError.


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

Случай hintApiInvalid

Эндпоинт API для подсказок посетителю не задан или задан некорректно.

Случай unknown

Неизвестная ошибка


Протокол SurveyListener

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

Метод on(survey:)

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

Параметр survey — объект опроса. Тип — Survey.

Метод on(nextQuestion:)

Данный метод вызывается в двух случаях: при получении опроса сразу после вызова on(survey:) и при успешном ответе на предыдущий вопрос текущего опроса.

Параметр nextQuestion — первый/следующий вопрос. Тип — SurveyQuestion.

Метод onSurveyCancelled()

Данный метод вызывается, когда опрос закрывается на сервере.


Протокол SendSurveyAnswerCompletionHandler

Объект, реализующий данный протокол, может быть передан в параметр completionHandler метода send(surveyAnswer:completionHandler:) протокола MessageStream.

Метод onSuccess()

Вызывается при успешном результате вызова метода send(surveyAnswer:completionHandler:) протокола MessageStream.

Метод onFailure(error:)

Вызывается при неуспешном результате вызова метода send(surveyAnswer:completionHandler:) протокола MessageStream.

Параметр error — ошибка, воспрепятствовавшая успешному вызову метода. Тип — SendSurveyAnswerError.


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

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

Случай incorrectRadioValue

Возникает, когда был передан неправильный ответ на вопрос типа 'radio'.

Случай incorrectStarsValue

Возникает, когда был передан неправильный ответ на вопрос типа 'stars'.

Случай incorrectSurveyID

Возникает, когда при попытке отправить ответ на вопрос был передан неверный ID опроса.

Случай maxCommentLength_exceeded

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

Случай noCurrentSurvey

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

Случай questionNotFound

Вопрос не найден.

Случай surveyDisabled

Возникает при попытке отправить ответ на вопрос, когда возможность опросов выключена на данном сервере.

Случай unknown

Неизвестная ошибка.


Протокол SurveyCloseCompletionHandler

Объект, реализующий данный протокол, может быть передан в параметр completionHandler метода closeSurvey(completionHandler:) протокола MessageStream.

Метод onSuccess()

Вызывается при успешном результате вызова метода closeSurvey(completionHandler:) протокола MessageStream.

Метод onFailure(error:)

Вызывается при неуспешном результате вызова метода closeSurvey(completionHandler:) протокола MessageStream.

Параметр error — ошибка, воспрепятствовавшая успешному вызову метода. Тип — SurveyCloseError.


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

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

Случай incorrectSurveyID

Возникает, когда при попытке закрыть опрос был передан неверный ID опроса.

Случай noCurrentSurvey

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

Случай surveyDisabled

Возникает при попытке закрыть опрос, когда возможность опросов выключена на данном сервере.

Случай unknown

Неизвестная ошибка.


Протокол GeolocationCompletionHandler

Объект, реализующий данный протокол, может быть передан в параметр completionHandler метода sendGeolocation протокола MessageStream.

Метод onSuccess()

Вызывается при успешном результате вызова метода sendGeolocation протокола MessageStream.

Метод onFailure(error:)

Вызывается при неуспешном результате вызова метода sendGeolocation протокола MessageStream.

Параметр error - ошибка, воспрепятствовавшая успешному вызову метода. Тип – GeolocationError.


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

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

Случай invalidGeolocation

Неверная данные геолокации.

Случай unknown

Неизвестная ошибка.


Протокол HelloMessageListener

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

Метод helloMessage(message:)

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

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


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

Доступные виды реакций.

Случай like

Оценка "Нравится".

Случай dislike

Оценка "Не нравится".


Протокол ReactionCompletionHandler

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

Метод onSuccess(messageID:)

Метод вызывается при успешном запросе методом react(message:reaction:completionHandler:) протокола MessageStream.

Параметр messageid — ID сообщения. Тип — String.

Метод onFailure(error:)

Вызывается при неудачном запросе метода react(message:reaction:completionHandler:).

Параметр error — ошибка, воспрепятствовавшая успешному вызову метода. Тип — ReactionError.


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

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

Случай notAllowed

На сервере отключены реакции.

Случай messageNotOwned

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

Случай messageNotFound

Сообщение не найдено.

Случай unknown

Неизвестная ошибка.


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

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

Случай UNKNOWN

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

Случай QUOTED_MESSAGE_CANNOT_BE_REPLIED

Процитированное сообщение не отмечено флагом canBeReplied или флаг не стоит в значении true.

Случай QUOTED_MESSAGE_FROM_ANOTHER_VISITOR

Отправленный ID сообщения соответствует другому посетителю.

Случай QUOTED_MESSAGE_MULTIPLE_IDS

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

Случай QUOTED_MESSAGE_REQUIRED_ARGUMENTS_MISSING

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

Случай QUOTED_MESSAGE_WRONG_ID

Был отправлен неверный ID процитированного сообщения.


Протокол Survey

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

Метод getConfig()

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

Возвращает значение типа SurveyConfig.

Метод getID()

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

Возвращает значение типа String.

Метод getCurrentQuestionInfo()

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

Возвращает значение типа SurveyCurrentQuestionInfo.


Протокол SurveyConfig

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

Метод getID()

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

Возвращает значение типа Int.

Метод getDescriptor()

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

Возвращает значение типа SurveyDescriptor.

Метод getVersion()

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

Возвращает значение типа String.


Протокол SurveyCurrentQuestionInfo

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

Метод getFormID()

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

Возвращает значение типа Int.

Метод getQuestionID()

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

Возвращает значение типа Int.


Протокол SurveyDescriptor

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

Метод getForms()

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

Возвращает значение типа SurveyForm.


Протокол SurveyForm

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

Метод getID()

С помощью этого метода можно получить id формы.

Возвращает значение типа Int.

Метод getQuestions()

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

Возвращает значение типа SurveyQuestion.


Протокол SurveyQuestion

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

Метод getType()

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

Возвращает значение типа SurveyType.

Метод getText()

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

Возвращает значение типа String.

Метод getOptions()

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

Возвращает опциональное значение типа [String].


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

Типы, которые можно получить в результате вызова метода getType() у объекта типа SurveyQuestion.

Случай stars

Вопрос, в котором ответ — это оценка.

Случай radio

Вопрос, в котором ответ — это вариант из списка возможных вариантов.

Случай comment

Вопрос, в котором ответ — это комментарий пользователя.


Протокол UploadFileToServerCompletionHandler

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

Метод onSuccess(id:uploadedFile:)

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

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

Параметр uploadedFile — загруженный на сервер файл. Тип — UploadedFile.

Метод onFailure(messageID:error:)

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

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

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


Протокол KeyboardButton

Метод getParams()

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

Возвращает объект Params или nil при отсутствии дополнительной информации.


Протокол Params

Содержит информацию о кнопке клавиатуры чат-бота.

Метод getAction()

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

Возвращает действие кнопки. Тип — опциональный String.

Метод getType()

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

Возвращает тип кнопки. Тип — опциональный ParamsButtonType.

Метод getColor()

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

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


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

Возможные типы кнопки клавиатуры чат-бота, возвращаемые методом Params.getType().

Случай url

Кнопка - ссылка.

Случай action

Кнопка - действие.


Метод startChat()

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

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

При отправке сообщения или файла пользователем, чат начинается автоматически, поэтому вызов метода не является обязательным. Но, если настройки аккаунта предусматривают приветственные сообщения, до начала чата (методами серии startChat или с первым сообщением) приветственные сообщения получены не будут.

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

Метод startChat(departmentKey:)

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

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

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

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

Если настройки аккаунта предусматривают приветственные сообщения, до начала чата (методами серии startChat или с первым сообщением) приветственные сообщения получены не будут.

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

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

Метод startChat(firstQuestion:)

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

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

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

При отправке сообщения или файла пользователем, чат начинается автоматически, поэтому вызов метода не является обязательным. Но, если настройки аккаунта предусматривают приветственные сообщения, до начала чата (методами серии startChat или с первым сообщением) приветственные сообщения получены не будут.

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

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

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

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

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

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

Если настройки аккаунта предусматривают приветственные сообщения, до начала чата (методами серии startChat или с первым сообщением) приветственные сообщения получены не будут.

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

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

Метод startChat(customFields:)

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

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

Параметр customFields — дополнительные поля в формате JSON. Тип — опциональный String.

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

Метод startChat(firstQuestion:customFields:)

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

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

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

Если настройки аккаунта предусматривают приветственные сообщения, до начала чата (методами серии startChat или с первым сообщением) приветственные сообщения получены не будут.

Параметр firstQuestion — первое сообщение пользователя. Тип — опциональный String.

Параметр customFields — дополнительные поля в формате JSON. Тип — опциональный String.

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

Метод startChat(departmentKey:customFields:)

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

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

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

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

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

Параметр customFields — дополнительные поля в формате JSON. Тип — опциональный String.

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

Метод startChat(departmentKey:firstQuestion:customFields:)

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

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

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

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

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

Если настройки аккаунта предусматривают приветственные сообщения, до начала чата (методами серии startChat или с первым сообщением) приветственные сообщения получены не будут.

Параметр firstQuestion — первое сообщение пользователя. Тип — опциональный String.

Параметр customFields — дополнительные поля в формате JSON. Тип — опциональный String.

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