CHAT21 является ядром платформы чата с открытым исходным кодом TiLedesk.com.
С помощью CHAT21 Android SDK вы можете:
| |
|
Демо -демо -исходный код приложения доступен здесь
Йо может построить свой чат после нашего официального учебника
Прежде чем начать, вам нужно несколько вещей, чтобы настроить в вашей среде:
Во-первых, включите плагин Google-Services и репозиторий Google Maven в ваш файл build.gradle на уровне корня:
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.1.1'
}
}
allprojects {
// ...
repositories {
// ...
google()
}
}
Затем в файле Gradle модуля (обычно приложение/build.gradle) добавьте линию плагина Apply внизу файла, чтобы включить плагин Gradle:
apply plugin: 'com.android.application'
// ...
dependencies {
// ...
implementation "com.google.android.gms:play-services:11.8.0"
}
// ...
apply plugin: 'com.google.gms.google-services'
Набор:
Добавьте следующее в файл приложения/build.gradle:
defaultConfig {
// ...
multiDexEnabled true
}
dependencies {
// ...
compile 'com.android.support:multidex:1.0.1'
compile "com.google.android.gms:play-services:11.8.0"
compile 'com.android.support:design:26.1.0'
compile 'org.chat21.android:chat21:1.0.10'
compile 'com.vanniktech:emoji-ios:0.5.1'
}
// ...
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.1.0'
}
}
}
}
Наконец, как описано в документации, вставьте это утверждение в качестве последней строки файла:
apply plugin: 'com.google.gms.google-services'
В конце вы загрузите файл google-services.json . Для получения дополнительной информации см. Относительную документацию
Создать пользовательский класс приложений
public class AppContext extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this); // add this
}
}
и добавьте его в manifest.xml
<application
android:name=".AppContext"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
...
</application>
Замените родительскую тему по умолчанию в styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
к
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Вы получите что -то вроде:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
CHAT21 SDK предоставляет объект CHAT.Configuration , который позволяет устанавливать пользовательское поведение и настройки для вашего чата.
Для создания нового экземпляра CHAT21 SDK вы должны создать свою собственную конфигурацию (используя чат21 SDK CHAT.Configuration.Builder) и использовать ее в качестве параметра для метода Chat.initialize(configuration);
// optional
//enable persistence must be made before any other usage of FirebaseDatabase instance.
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
// mandatory
// it creates the chat configurations
ChatManager.Configuration mChatConfiguration =
new ChatManager.Configuration.Builder(<APP_ID>)
.firebaseUrl(<FIREBASE_DATABASE_URL>)
.storageBucket(<STORAGE_BUCKET>)
.build();
ChatManager.start(<CONTEXT>, mChatConfiguration, <LOGGED_USER>);
Заменять:
<APP_ID> с вашим Appid;<FIREBASE_URL> с вашим URL -адресом базы данных Firebae вашего приложения Firebase;<STORAGE_BUCKET> с вашим URL -адресом хранилища Firebae вашего приложения Firebase;<CONTEXT> с вашим контекстом;<LOGGED_USER> с вашим текущим пользователем регистрации, предполагая, что это экземпляр iChatuserChatui позволяет быстро подключить общие элементы пользовательского интерфейса к API -интерфейсам CHAT21 SDK.
Chatui позволяет вам начать чат как с активностью, так и с фрагмента.
Инициализировать компонент Chatui со следующей инструкцией
ChatUI.getInstance().setContext(this);
Он начинает новое действие, которое содержит список разговоров.
ChatUI.getInstance().showConversationsListActivity();
Вы должны создать фрагмент с контейнером внутри.
Чат начнется внутри этого контейнера, где показан список разговоров.
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.design.widget.CoordinatorLayout>
Теперь вы можете показать свой чат с помощью следующего метода:
ChatUI.getInstance().openConversationsListFragment(getChildFragmentManager(), R.id.container);
Конфликты в com.android.support
Ошибка:
* What went wrong:
Execution failed for task ':app:processDebugResources'.
> Failed to execute aapt
Решение: скопируйте этот блок внизу вашего файла /project/ app/build.gradle
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.1.0'
}
}
}
}
Multidex
Ошибка:
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Решение: убедитесь, что вы добавили multiDexEnabled true внутри /project/app/build.gradle
Скопируйте этот блок внутри пользовательского класса приложений
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
Тема
Ошибка:
RuntimeException: Unable to start activity ComponentInfo{my.sample.package.myapplication/chat21.android.ui.conversations.activities.ConversationListActivity}: java.lang.IllegalStateException:
This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
Решение: см. Раздел стиля
Исключения имени приложения:
Ошибка:
/android/MyApp/app/src/main/AndroidManifest.xml:30:9 Error:
Attribute application@label value=(@string/application_name) from AndroidManifest.xml:30:9
is also present at {Library Name} value=(@string/app_name)
Suggestion: add 'tools:replace="android:label"' to <application> element at AndroidManifest.xml:26:5 to override
Решение: Добавьте tools:replace="android:label" , чтобы переопределить имя приложения CHAT21 и значок приложения SDK:
```
<application
android:name=".AppContext"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="android:label, android:icon"> <!-- add this -->
. . .
</application>
```
Следуйте этому руководству, чтобы развернуть свою собственную библиотеку в JCenter