LiveTex Mobile SDK предоставляет набор инструментов для организации консультирования пользователей мобильных приложений.
В данном репозитории находится готовая к внедрению UI реализация для SDK, а так же демо проект.
Сам SDK находится в репозитории sdk-android.
Демо
Пример использования библиотеки можно посмотреть вживую в полноценном демо приложении, поставив его на устройство через официальный Google Play.
Исходники этого демо приложения лежат в папке demo-app.
Пример подключения (с пушами) есть демо приложении.
В build.gradle (который в корне проекта) добавить репозиторий jitpack
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
В build.gradle (который в модуле приложения) добавить зависимость SDK актуальной версии (см. Releases)
dependencies {
implementation 'com.github.LiveTex:sdk-ui-android:x.y'
}
В AndroidManifest.xml добавьте запись
<activity
android:name="ru.livetex.sdkui.chat.ChatActivity"
android:theme="@style/Theme.Chat"
android:screenOrientation="portrait" />
В styles.xml добавьте запись вида
<style name="Theme.Chat" parent="Theme.YourAppTheme">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
где Theme.YourAppTheme это тема вашего приложения. Если она не Material, сделайте наследование от Theme.MaterialComponents.*.Bridge . В будущем планируем добавить возможности кастомизации.
Далее нужно инициализировать обьект LiveTex. Делается это обычно в Application классе (например App.java).
new LiveTex.Builder(Const.TOUCHPOINT).build();
Укажите Touchpoint (берется в личном кабинете). Если у вас свой эндпоинт авторизации, укажите его добавив в билдер вызов .setAuthEndpoint(endpoint).
В итоге для вызова экрана чата нужно запустить активити
startActivity(new Intent(this, ChatActivity.class));
Пуши
В демо приложении есть пример того, как подключить пуши и передать токен в LiveTex.
Для подключения пушей нужно сначала подключить Firebase Messaging Service по их стандартной инструкции.
С помощью функции FirebaseInstanceId.getInstance().getInstanceId()
нужно зарегистрировать устройство в Firebase и получить в ответ device token, который в свою очередь нужно передать в билдер LiveTex. Это несинхронная операция которая требует какое-то время, поэтому функция реактивная.
Внимание - функция initLiveTex()
должна быть вызвана до использования класса LiveTex. Поэтому инициализировать его в случае с Firebase стоит заранее (в SplashActivity например).
Если не критично, можете инициализировать синглтон LiveTex с пустым пуш токеном, обычно к следующей инициализации токен уже лежит в FirebaseInstanceId.getInstance().getToken().
public Completable init() {
return Completable.create(emitter -> {
FirebaseMessaging.getInstance().getToken().addOnCompleteListener(task -> {
if (!task.isSuccessful()) {
Log.w(TAG, "Fetching FCM registration token failed", task.getException());
initLiveTex(null);
emitter.onComplete();
return;
}
// Get new FCM registration token
String token = task.getResult();
Log.i(TAG, "firebase token = " + token);
initLiveTex(token);
emitter.onComplete();
});
});
}
private void initLiveTex(@Nullable String token) {
new LiveTex.Builder(Const.TOUCHPOINT)
.setDeviceToken(token)
.build();
}
Отладка
Для отладки можно включить логи https и websocket общения, для этого при инициализации LiveTex вызвать 2 дополнительные функции
private void initLiveTex(@Nullable String token) {
new LiveTex.Builder(Const.TOUCHPOINT)
.setDeviceToken(token)
.setWebsocketLoggingEnabled()
.setNetworkLoggingEnabled()
.build();
}