From 53382cbfb331f4a7f2e7e0e9956ba35da92183b2 Mon Sep 17 00:00:00 2001 From: bekannax <48668214+bekannax@users.noreply.github.com> Date: Wed, 20 Nov 2019 16:32:38 +0700 Subject: [PATCH] Update README.md --- README.md | 144 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 128 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 513d069..a165981 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,140 @@ -# OnlineChatSdk - -[![CI Status](https://img.shields.io/travis/bekannax/OnlineChatSdk.svg?style=flat)](https://travis-ci.org/bekannax/OnlineChatSdk) +# 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/OnlineChatSdk.svg?style=flat)](https://cocoapods.org/pods/OnlineChatSdk) -## Example +## Добавление в проект -To run the example project, clone the repo, and run `pod install` from the Example directory first. - -## Requirements - -## Installation - -OnlineChatSdk is available through [CocoaPods](https://cocoapods.org). To install -it, simply add the following line to your Podfile: - -```ruby 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") ``` -## Author +## События + * **operatorSendMessage** - оператор отправил сообщение посетителю. + * **clientSendMessage** - посетитель отправил сообщение оператору. + * **clientMakeSubscribe** - посетитель заполнил форму. + * **contactsUpdated** - посетитель обновил информацию о себе. + * **sendRate** - посетитель отправил новый отзыв. + * **clientId** - уникальный идентификатор посетителя. -bekannax, bekannax@gmail.com +Для каждого события есть персональный обработчик. +```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("", "") + {(result) in + if result?["error"] != nil { + print("error : \(String(describing: result?["error"]))") + } else { + print("result : \(result.debugDescription)") + } + } +``` +Подробное описание можно прочесть в разделе «Интеграция и API - REST API - Инструкции по подключению». ## License