Files
OnlineChatSdk-SwiftPM/README.md
2019-11-20 16:33:32 +07:00

142 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# OnlineChatSdk-Swift
[![Version](https://img.shields.io/cocoapods/v/OnlineChatSdk.svg?style=flat)](https://cocoapods.org/pods/OnlineChatSdk)
[![License](https://img.shields.io/cocoapods/l/OnlineChatSdk.svg?style=flat)](https://cocoapods.org/pods/OnlineChatSdk)
![Platform](https://img.shields.io/cocoapods/p/SwiftMessages.svg?style=flat)
## Добавление в проект
pod 'OnlineChatSdk'
## Получение id
Перейдите в раздел «Настройки - Установка» и скопируйте значение переменной id.
![](https://github.com/bekannax/OnlineChatSdk-Android/blob/master/images/2019-03-21_16-53-28.png)
## Пример использования
Добавьте свой **ViewController** с суперклассом `ChatController`.
```swift
class MyController: ChatController {
override func viewDidLoad() {
super.viewDidLoad()
load("<Ваш id>", "<Домен вашего сайта>")
}
}
```
Так же при загрузке можно указать **language** и **clientId**.
```swift
load("<Ваш id>", "<Домен вашего сайта>", "en", "newClientId")
```
## События
* **operatorSendMessage** - оператор отправил сообщение посетителю.
* **clientSendMessage** - посетитель отправил сообщение оператору.
* **clientMakeSubscribe** - посетитель заполнил форму.
* **contactsUpdated** - посетитель обновил информацию о себе.
* **sendRate** - посетитель отправил новый отзыв.
* **clientId** - уникальный идентификатор посетителя.
Для каждого события есть персональный обработчик.
```swift
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) {
}
```
Или можно задать один обработчик на все события.
```swift
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** - получение контактных данных.
```swift
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 или добавьте новый.
![](https://github.com/bekannax/OnlineChatSdk-Android/blob/master/images/2019-04-01_18-32-22.png)
## ChatApi
**getNewMessages** - получение новых сообщений от оператора.
```swift
ChatApi.getNewMessages("<TOKEN>", "<clientId>")
{(result) in
if result?["error"] != nil {
print("error : \(String(describing: result?["error"]))")
} else {
print("result : \(result.debugDescription)")
}
}
```
Подробное описание можно прочесть в разделе «Интеграция и API - REST API - Инструкции по подключению».
## License
OnlineChatSdk is available under the MIT license. See the LICENSE file for more info.