Chat21 adalah inti dari platform obrolan langsung open source TileDesk.com.
Dengan chat21 Android SDK Anda bisa:
| |
|
Kode sumber aplikasi demo tersedia di sini
Anda dapat membuat obrolan sendiri setelah tutorial resmi kami
Sebelum Anda mulai, Anda perlu beberapa hal untuk diatur di lingkungan Anda:
Pertama, sertakan plugin Google-Services dan repositori Maven Google ke file build.gradle level root Anda:
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.1.1'
}
}
allprojects {
// ...
repositories {
// ...
google()
}
}
Kemudian, dalam file gradle modul Anda (biasanya aplikasi/build.gradle), tambahkan garis plugin terapkan di bagian bawah file untuk mengaktifkan plugin gradle:
apply plugin: 'com.android.application'
// ...
dependencies {
// ...
implementation "com.google.android.gms:play-services:11.8.0"
}
// ...
apply plugin: 'com.google.gms.google-services'
Mengatur:
Tambahkan yang berikut ke file aplikasi/build.gradle Anda:
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'
}
}
}
}
Akhirnya, seperti yang dijelaskan dalam dokumentasi, tempel pernyataan ini sebagai baris terakhir dari file:
apply plugin: 'com.google.gms.google-services'
Pada akhirnya, Anda akan mengunduh file google-services.json . Untuk informasi lebih lanjut, lihat dokumentasi relatif
Buat kelas aplikasi khusus
public class AppContext extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this); // add this
}
}
dan tambahkan ke manifest.xml
<application
android:name=".AppContext"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
...
</application>
Ganti tema induk default di styles.xml Anda
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
ke
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Anda akan mendapatkan sesuatu seperti:
<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 menyediakan objek CHAT. Konfigurasi yang memungkinkan untuk mengatur beberapa perilaku dan pengaturan khusus untuk obrolan Anda.
Untuk membuat instance baru dari Chat21 SDK, Anda harus membuat konfigurasi sendiri (menggunakan chat21 SDK Chat.configuration.builder) dan menggunakannya sebagai paramater untuk metode 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>);
Mengganti:
<APP_ID> dengan appid Anda;<FIREBASE_URL> dengan url basis data firebae Anda dari aplikasi firebase Anda;<STORAGE_BUCKET> dengan URL bucket penyimpanan firebae Anda dari aplikasi firebase Anda;<CONTEXT> dengan konteks Anda;<LOGGED_USER> Dengan pengguna yang dicatat saat ini, dengan asumsi itu adalah instance dari ichatuserChatui memungkinkan Anda untuk menghubungkan elemen UI umum dengan cepat ke API Chat21 SDK.
Chatui memungkinkan Anda memulai obrolan dengan aktivitas dan bagian dalam fragmen.
Inisialisasi komponen chatui dengan instruksi berikut
ChatUI.getInstance().setContext(this);
Ini memulai aktivitas baru yang berisi daftar percakapan.
ChatUI.getInstance().showConversationsListActivity();
Anda harus membuat fragmen dengan wadah di dalamnya.
Obrolan akan dimulai di dalam wadah ini di mana daftar percakapan ditampilkan.
<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>
Sekarang Anda dapat menampilkan obrolan Anda dengan metode berikut:
ChatUI.getInstance().openConversationsListFragment(getChildFragmentManager(), R.id.container);
Konflik dalam com.android.support
Kesalahan:
* What went wrong:
Execution failed for task ':app:processDebugResources'.
> Failed to execute aapt
Solusi: Salin blok ini di bagian bawah file /project/app/build.gradle Anda
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
Kesalahan:
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Solusi: Pastikan Anda telah menambahkan multiDexEnabled true Inside of /project/app/build.gradle
Salin blok ini di dalam kelas aplikasi khusus Anda
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
Tema
Kesalahan:
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.
Solusi: Lihat bagian Gaya
Pengecualian Nama Aplikasi:
Kesalahan:
/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
Solusi: Tambahkan tools:replace="android:label" untuk mengganti nama aplikasi Chat21 SDK dan ikon default:
```
<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>
```
Ikuti panduan ini untuk menggunakan perpustakaan Anda sendiri ke JCenter