Дополнительные возможности 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
Возможный источник статьи. Статья может быть взята из поиска или из структуры или категории.
Случай search
Статью запрашивают из поиска.
Случай tree
Статью запрашивают из структуры или категории.
Перечисляемый тип RootType
Возможные типы корня дерева блока часто задаваемых вопросов (см. метод getType()
протокола FAQStructure
).
Случай item
Корень дерева является страницей.
Случай category
Корень дерева является категорией.
случай unknown
Корень дерева имеет неизвестный тип для данной версии SDK.
Класс SessionBuilder
Метод set(prechat:)
Метод, с помощью которого можно установить поля с дополнительной информацией, которая будет видна оператору.
Параметр prechat
— поля с дополнительной информацией в формате JSON
. Тип параметра — String
.
Возвращает тот же экземпляр класса SessionBuilder
, но с установленными полями. Для получения экземпляра класса WebimSession
вызов метода не является обязательным.
Метод set(multivistorSection:)
Метод, с помощью которого можно установить настройки для получения push-уведомлений от сервиса Webim при запуске нескольких сессий на одном устройстве.
Тип параметра multivisitorSection
— String
.
Возвращает тот же экземпляр класса SessionBuilder
, но с установленным полем.
Для получения экземпляра класса WebimSession
вызов метода не является обязательным.
Метод set(onlineStatusRequestFrequencyInMillis:)
Метод, с помощью которого можно указать частоту запросов к серверу в миллисекундах.
Параметр onlineStatusRequestFrequencyInMillis
— Int64
.
Возвращает тот же экземпляр класса 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
.