buildscript {
repositories {
mavenCentral()
}
dependencies {
implementation 'com.github.bekannax:OnlineChatSdk:0.4.5'
}
}Перейдите в раздел «Online чат - Ваш сайт - Настройки - Установка» и скопируйте значение переменной id.

Создайте layout с нашим ChatView. Создайте Activity, которая наследует ChatActivity.
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<com.sofit.onlinechatsdk.ChatView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/chatview"
app:id="<Ваш id>"
app:domain="<Домен вашего сайта>"
app:showCloseButton="true"
app:showLoaderCloseButton="true"
app:autoLoad="true" />
</android.support.constraint.ConstraintLayout>Если autoLoad = true, то при запуске Activity виджет автоматически загрузится, если autoLoad = false, то нужно использовать функцию load().
public class MyActivity extends ChatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.chat_view);
ChatView chatView = getChatView();
if (chatView != null) {
chatView.load();
}
}
}Так же перед загрузкой можно указать language и clientId.
chatView.setLanguage("en").setClientId("newId").load();- operatorSendMessage - оператор отправил сообщение посетителю.
- clientSendMessage - посетитель отправил сообщение оператору.
- clientMakeSubscribe - посетитель заполнил форму.
- contactsUpdated - посетитель обновил информацию о себе.
- sendRate - посетитель отправил новый отзыв.
- clientId - уникальный идентификатор посетителя.
Для каждого события есть персональный Listener.
chatView.setOnOperatorSendMessageListener(new ChatListener() {
@Override
public void onEvent(String name, String data) {
}
});
chatView.setOnClientSendMessageListener(new ChatListener() {
@Override
public void onEvent(String name, String data) {
}
});
chatView.setOnClientMakeSubscribeListener(new ChatListener() {
@Override
public void onEvent(String name, String data) {
}
});
chatView.setOnContactsUpdatedListener(new ChatListener() {
@Override
public void onEvent(String name, String data) {
}
});
chatView.setOnSendRateListener(new ChatListener() {
@Override
public void onEvent(String name, String data) {
}
});
chatView.setOnClientIdListener(new ChatListener() {
@Override
public void onEvent(String name, String data) {
}
});Или можно задать один Listener на все события.
chatView.setListener(new ChatListener() {
@Override
public void onEvent(String name, String data) {
switch (name) {
case ChatView.event_operatorSendMessage:
break;
case ChatView.event_clientSendMessage:
break;
case ChatView.event_clientMakeSubscribe:
break;
case ChatView.event_contactsUpdated:
break;
case ChatView.event_sendRate:
break;
case ChatView.event_clientId:
break;
}
}
});- setClientInfo - изменение информации о посетителе.
- setClientTags - изменение тэгов посетителя.
- setTarget - пометить посетителя целевым.
- openReviewsTab - отобразить форму для отзыва.
- openTab - отобразить необходимую вкладку.
- sendMessage - отправка сообщения от имени клиента.
- receiveMessage - отправка сообщения от имени оператора.
- setOperator - выбор любого оператора.
- getContacts - получение контактных данных.
chatView.callJsSetClientInfo("{name: \"Имя\", email: \"test@mail.ru\"}");
chatView.callJsSetClientTags(toAdd: List<String>, toRemove: List<String>, isRemoveAllCurrentTags: boolean);
chatView.callJsSetTarget("reason");
chatView.callJsOpenReviewsTab();
chatView.callJsOpenTab(1);
chatView.callJsSendMessage("Здравствуйте! У меня серьёзная проблема!");
chatView.callJsReceiveMessage("Мы уже спешим на помощь ;)", null, 2000);
chatView.callJsSetOperator("Логин оператора");
chatView.callJsGetContacts(new ChatListener() {
@Override
public void onEvent(String name, String data) {
}
});Подробное описание методов можно прочесть в разделе «Интеграция и API - Javascript API».
Чтобы получить информацию о новых сообщениях, когда виджет не запущен, в ChatView есть статичный метод getUnreadMessagesCount.
При успешном запросе метод возвращает ChatApiGetClientUnreadMessageCountResponseModel, где result — это количество непрочитанных сообщений.
Если при запросе произошел сбой, то в error будет передан ChatApiResponseErrorModel с описанием ошибки.
