Skip to content
No description or website provided.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
OnlineChatSdk.xcodeproj
OnlineChatSdk
.gitignore
README.md

README.md

OnlineChatSdk-Swift

Platform

Получение id

Перейдите в раздел «Настройки - Установка» и скопируйте значение переменной id.

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

Добавьте свой ViewController с суперклассом ChatController.

class MyController: ChatController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        load("<Ваш id>", "<Домен вашего сайта>")
    }
}

Так же при загрузке можно указать language и clientId.

load("<Ваш id>", "<Домен вашего сайта>", "en", "newClientId")

События

  • 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».

Получение token

Перейдите в раздел «Интеграция и API - REST API», скопируйте существующий token или добавьте новый.

ChatApi

getNewMessages - получение новых сообщений от оператора.

ChatApi.getNewMessages("<TOKEN>", "<clientId>")
    {(result) in
        if result?["error"] != nil {
            print("error : \(String(describing: result?["error"]))")
        } else {
            print("result : \(result.debugDescription)")
        }
    }

Подробное описание можно прочесть в разделе «Интеграция и API - REST API - Инструкции по подключению».

You can’t perform that action at this time.