chat21 เป็นแกนหลักของแพลตฟอร์มแชทสดโอเพนซอร์ส tiledesk.com
ด้วย Chat21 Android SDK คุณสามารถทำได้:
- -
-
ซอร์สโค้ดแอพสาธิตมีอยู่ที่นี่
คุณสามารถสร้างการแชทของคุณเองหลังจากการสอนอย่างเป็นทางการของเรา
ก่อนที่คุณจะเริ่มคุณต้องมีบางสิ่งที่จะตั้งค่าในสภาพแวดล้อมของคุณ:
ก่อนอื่นให้รวมปลั๊กอินของ Google-Services และที่เก็บ Maven ของ Google ในไฟล์ build.gradle ระดับรากของคุณ:
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.1.1'
}
}
allprojects {
// ...
repositories {
// ...
google()
}
}
จากนั้นในไฟล์ module Gradle ของคุณ (โดยปกติคือ App/Build.gradle) ให้เพิ่มสายปลั๊กอินที่ใช้ที่ด้านล่างของไฟล์เพื่อเปิดใช้งานปลั๊กอิน 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 ให้วัตถุ แชทกำหนดค่า ซึ่งอนุญาตให้ตั้งค่าพฤติกรรมและการตั้งค่าที่กำหนดเองสำหรับการแชทของคุณ
ในการสร้างอินสแตนซ์ใหม่ของ chat21 SDK คุณต้องสร้างการกำหนดค่าของคุณเอง (โดยใช้ chat21 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 ช่วยให้คุณเชื่อมต่อองค์ประกอบ UI ทั่วไปกับ APIs 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'
}
}
}
}
มัลติดีซ์
ข้อผิดพลาด:
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