Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea Add sdk files Mar 20, 2019
gradle/wrapper
images
onlinechatsdk Add ChatApi Apr 1, 2019
.gitignore Add sdk files Mar 20, 2019
README.md
build.gradle Initial commit Mar 28, 2019
gradle.properties Add sdk files Mar 20, 2019
gradlew
gradlew.bat Add sdk files Mar 20, 2019
settings.gradle Add sdk files Mar 20, 2019

README.md

OnlineChatSdk-Android API Download

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

buildscript {
    repositories {
        maven {
            url 'https://dl.bintray.com/sofit/onlinechatsdk/'
        }
    }
    dependencies {
        implementation 'com.github.bekannax:onlinechatsdk:0.0.4'
    }
}

Получение id

Перейдите в раздел «Настройки - Установка» и скопируйте значение переменной 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: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: \"test@mail.ru\"");

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».

Получение token

Перейдите в раздел «Интеграция и API - REST API», скопируйте существующий token или добавьте новый.

ChatApi

getNewMessages - получение новых сообщений от оператора.

JSONObject data = ChatApi.getNewMessages("<TOKEN>", "<clientId>");
if (data.length() > 0) {
    // Есть новые сообщения от оператора
}

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

You can’t perform that action at this time.