pod 'OnlineChatSdk'
Перейдите в раздел «Online чат - Ваш сайт - Настройки - Установка» и скопируйте значение переменной id.
Добавьте свой ViewController
с суперклассом ChatController
.
class MyController: ChatController {
override func viewDidLoad() {
super.viewDidLoad()
load("<Ваш id>", "<Домен вашего сайта>")
}
}
Так же при загрузке можно указать language
, clientId
и apiToken
.
load(
"<Ваш id>",
"<Домен вашего сайта>",
"en",
"newClientId",
"<Токен для доступа к Rest Api>",
"showCloseButton",
"css"
)
- operatorSendMessage - оператор отправил сообщение посетителю.
- clientSendMessage - посетитель отправил сообщение оператору.
- clientMakeSubscribe - посетитель заполнил форму.
- contactsUpdated - посетитель обновил информацию о себе.
- sendRate - посетитель отправил новый отзыв.
- clientId - уникальный идентификатор посетителя.
Для каждого события есть персональный обработчик.
override func onOperatorSendMessage(_ data: NSDictionary) {
}
override func onClientSendMessage(_ data: NSDictionary) {
}
override func onClientMakeSubscribe(_ data: NSDictionary) {
}
override func onContactsUpdated(_ data: NSDictionary) {
}
override func onSendRate(_ data: NSDictionary) {
}
override func onClientId(_ clientId: String) {
}
Или можно задать один обработчик на все события.
override func onEvent(_ name: String, _ data: NSDictionary) {
switch name {
case ChatController.event_operatorSendMessage:
break
case ChatController.event_clientSendMessage:
break
case ChatController.event_clientMakeSubscribe:
break
case ChatController.event_contactsUpdated:
break
case ChatController.event_sendRate:
break
case ChatController.event_clientId:
break
case ChatController.method_getContacts:
break
default:
break
}
}
- setClientInfo - изменение информации о посетителе.
- setTarget - пометить посетителя целевым.
- openReviewsTab - отобразить форму для отзыва.
- openTab - отобразить необходимую вкладку.
- sendMessage - отправка сообщения от имени клиента.
- receiveMessage - отправка сообщения от имени оператора.
- setOperator - выбор любого оператора.
- getContacts - получение контактных данных.
callJsSetClientInfo("{name: \"Имя\", email: \"test@mail.ru\"}")
callJsSetTarget("reason")
callJsOpenReviewsTab()
callJsOpenTab(1)
callJsSendMessage("Здравствуйте! У меня серьёзная проблема!")
callJsReceiveMessage("Мы уже спешим на помощь ;)", "", 2000)
callJsSetOperator("Логин оператора")
callJsGetContacts() // результат прилетает в getContactsCallback
override func getContactsCallback(_ data: NSDictionary) {
}
Подробное описание методов можно прочесть в разделе «Интеграция и API - Javascript API».
Перейдите в раздел «Интеграция и API - REST API», скопируйте существующий token или добавьте новый.
Для получения новых сообщений, в ChatController
есть два статичных метода getUnreadedMessages
и getNewMessages
.
getUnreadedMessages - возвращает все непрочитанные сообщения.
getNewMessages работает аналогичным образом, но при повторном запросе предыдущие сообщения уже не возвращаются.
Перед использование методов, нужно указать apiToken
.
ChatController.getUnreadedMessages { data in }
ChatController.getNewMessages { data in }
Формат data
аналогичен ответу метода /chat/message/getList в Rest Api.
Подробное описание можно прочесть в разделе «Интеграция и API - REST API - Инструкции по подключению».
OnlineChatSdk is available under the MIT license. See the LICENSE file for more info.