buildscript {
repositories {
mavenCentral()
}
dependencies {
implementation 'com.github.bekannax:OnlineChatSdk:0.3.6'
}
}
Перейдите в раздел «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: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 - изменение информации о посетителе.
- setTarget - пометить посетителя целевым.
- openReviewsTab - отобразить форму для отзыва.
- openTab - отобразить необходимую вкладку.
- sendMessage - отправка сообщения от имени клиента.
- receiveMessage - отправка сообщения от имени оператора.
- setOperator - выбор любого оператора.
- getContacts - получение контактных данных.
chatView.callJsSetClientInfo("{name: \"Имя\", email: \"[email protected]\"}");
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».
Перейдите в раздел «Интеграция и API - REST API», скопируйте существующий token или добавьте новый.
Для получения новых сообщений, в ChatView
есть два статичных метода getUnreadedMessages и getNewMessages.
getUnreadedMessages - возвращает все непрочитанные сообщения.
getNewMessages работает аналогичным образом, но при повторном запросе предыдущие сообщения уже не возвращаются.
Перед использование методов, нужно указать apiToken
.
Это можно сделать в коде
chatView.setApiToken("<apiToken>");
JSONObject data = ChatView.getUnreadedMessages(Context context);
JSONObject data = ChatView.getNewMessages(Context context);
Формат data
аналогичен ответу метода /chat/message/getList в Rest Api.
Подробное описание можно прочесть в разделе «Интеграция и API - REST API - Инструкции по подключению».