Skip to content

kapitoshka438/OnlineChatSdk-Swift

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OnlineChatSdk-Swift

Version License Platform

Добавление в проект

pod 'OnlineChatSdk'

Получение id

Перейдите в раздел «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: \"[email protected]\"}")

callJsSetTarget("reason")

callJsOpenReviewsTab()

callJsOpenTab(1)

callJsSendMessage("Здравствуйте! У меня серьёзная проблема!")

callJsReceiveMessage("Мы уже спешим на помощь ;)", "", 2000)

callJsSetOperator("Логин оператора")

callJsGetContacts() // результат прилетает в getContactsCallback
override func getContactsCallback(_ data: NSDictionary) {
        
}

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

Получение token

Перейдите в раздел «Интеграция и 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 - Инструкции по подключению».

License

OnlineChatSdk is available under the MIT license. See the LICENSE file for more info.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 97.4%
  • Ruby 2.6%