Menyematkan jendela obrolan seluler di aplikasi Android untuk
Obrolan Langsung: https://developers.livechat.com/docs/getting-started/installing-livechat/android-widget/
Untuk memasukkan proyek ke dalam bangunan Anda:
Langkah 1. Tambahkan repositori JitPack ke file build Anda Tambahkan di root build.gradle Anda di akhir repositori:
allprojects {
repositories {
.. .
maven { url ' https://jitpack.io ' }
}
}
Langkah 2. Tambahkan ketergantungan
dependencies {
implementation 'com.github.livechat:chat-window-android:v2.4.3'
}
Aplikasi Anda memerlukan izin untuk menggunakan Internet. Tambahkan baris berikut ke AndroidManifest.xml Anda :
< uses-permission android : name = " android.permission.INTERNET " />
Ada beberapa cara Anda dapat menggunakan perpustakaan ini. Untuk dapat menggunakan semua fitur kami menyarankan Anda menambahkan jendela obrolan sebagai tampilan, baik dengan menggunakan metode statis yang menambahkan tampilan ke aktivitas Anda, atau sebagai tampilan yang tertanam di xml Anda. Selama ChatWindowView diinisialisasi, Anda akan mendapatkan kejadian ketika pesan baru masuk.
Pertama, Anda perlu mengkonfigurasi jendela obrolan Anda
Cukup gunakan konstruktor ChatWindowConfiguration.java. Perhatikan bahwa nomor lisensi adalah wajib.
configuration = new ChatWindowConfiguration (
"your_licence_number" ,
"group_id" , // optional
"Visitor name" , // optional
"[email protected]" , // optional
customParamsMap // optional
);
Anda juga dapat menggunakan new ChatWindowConfiguration.Builder()
.
Ada dua cara yang disarankan untuk menggunakan ChatWindow.
Yang perlu Anda lakukan hanyalah membuat, melampirkan, dan menginisialisasi jendela obrolan. Sesuatu di baris:
public void startFullScreenChat () {
if ( fullScreenChatWindow == null ) {
fullScreenChatWindow = ChatWindowUtils . createAndAttachChatWindowInstance ( getActivity ());
fullScreenChatWindow . setEventsListener ( this );
fullScreenChatWindow . init ( configuration );
}
fullScreenChatWindow . showChatWindow ();
}
Jika Anda ingin mengontrol tempat dan ukuran ChatWindowView, Anda mungkin ingin menambahkannya ke aplikasi Anda dengan menyertakan tampilan dalam XML
< com .livechatinc.inappchat.ChatWindowViewImpl
android : id = " @+id/embedded_chat_window "
android : layout_width = " match_parent "
android : layout_height = " 400dp " />
atau menggembungkan tampilan secara langsung
ChatWindowViewImpl chatWindowView = new ChatWindowViewImpl ( MainActivity . this );
dan kemudian menginisialisasi ChatWindow seperti dengan pendekatan jendela layar penuh:
public void startEmmbeddedChat ( View view ) {
emmbeddedChatWindow . setEventsListener ( this );
emmbeddedChatWindow . init ( configuration );
// ...
emmbeddedChatWindow . showChatWindow ();
}
Tergantung pada kasus penggunaan Anda, Anda mungkin ingin menyembunyikan ChatWindow jika pengguna menekan tombol kembali. Anda dapat menggunakan fungsi onBackPressed() kami yang menyembunyikan tampilan jika terlihat dan mengembalikan nilai true. Dalam aktivitas/fragmen Anda, tambahkan yang berikut ini:
@ Override
public boolean onBackPressed () {
return fullScreenChatWindow != null && fullScreenChatWindow . onBackPressed ();
}
Pendengar ini memberi Anda kesempatan untuk:
Untuk memberikan kemampuan kepada pengguna untuk mengirim file, Anda perlu mengaturnya melalui supportFileSharing
di ChatWindowView
Anda. Jika sistem operasi tidak dapat menangani Intent untuk mengambil file, Anda dapat menanganinya melalui panggilan balik onFilePickerActivityNotFound
di ChatWindowEventsListener
.
Anda dapat menonaktifkan perilaku default widget obrolan saat pengguna memilih tautan dengan menerapkan metode handleUri
dari ChatWindowEventsListener.
@ Override
public boolean handleUri ( Uri uri ) {
// Handle uri here...
return true ; // Return true to disable default behavior.
}
Anda mungkin ingin menyesuaikan pengalaman pengguna saat mengalami kesalahan, seperti masalah koneksi internet. Dengan mengembalikan true
dalam metode panggilan balik onError
Anda bertanggung jawab menangani kesalahan yang datang dari jendela obrolan.
Harap diingat bahwa jendela obrolan, setelah dimuat, dapat menangani masalah koneksi dengan mencoba menyambung kembali secara sporadis. Kasus ini dapat dideteksi dengan menerapkan kondisi berikut dalam metode panggilan balik onError.
@ Override
public boolean onError ( ChatWindowErrorType errorType , int errorCode , String errorDescription ) {
if ( errorType == ChatWindowErrorType . WebViewClient && errorCode == - 2 && chatWindow . isChatLoaded ()) {
//Chat window can handle reconnection. You might want to delegate this to chat window
return false ;
} else {
reloadChatBtn . setVisibility ( View . VISIBLE );
}
Toast . makeText ( getActivity (), errorDescription , Toast . LENGTH_SHORT ). show ();
return true ;
}
Setelah pengguna keluar dari aplikasi, Anda mungkin ingin menghapus sesi obrolan. Anda dapat melakukannya dengan menjalankan metode statis di ChatWindowUtils.clearSession()
dari mana saja di aplikasi. Jika ChatWindowView
Anda terpasang selama alur logout, Anda juga perlu memuatnya ulang dengan memanggil chatWindow.reload()
setelah kode clearSession. Lihat FullScreenWindowActivityExample.java
Jika Anda tidak perlu diberi tahu saat pengguna mendapat pesan baru di ChatWindow tersembunyi, Anda mungkin ingin menggunakan ChatWindowActivity
atau ChatWindowFragment
Untuk membuka jendela obrolan di Aktivitas baru, Anda perlu mendeklarasikan ChatWindowActivity
di manifes Anda. Tambahkan baris berikut ke AndroidManifest.xml
, di antara tag <application></application>
:
< activity
android : name = " com.livechatinc.inappchat.ChatWindowActivity "
android : configChanges = " orientation|screenSize "
android : exported = " false "
/>
Terakhir, tambahkan kode berikut ke aplikasi Anda, di tempat di mana Anda ingin membuka jendela obrolan (misalnya tombol pendengar). Anda perlu memberikan Konteks (objek Aktivitas atau Aplikasi Anda) dan nomor lisensi LiveChat Anda:
Intent intent = new Intent ( context , com . livechatinc . inappchat . ChatWindowActivity . class );
Bundle config = new ChatWindowConfiguration . Builder ()
. setLicenceNumber ( "<your_license_number>" )
. build ();
intent . putExtra ( ChatWindowConfiguration . KEY_CHAT_WINDOW_CONFIG , windowConfig );
startActivity ( intent );
Dimungkinkan juga untuk masuk secara otomatis ke jendela obrolan dengan memberikan nama dan email pengunjung dan menonaktifkan survei pra-obrolan.
Untuk membuka jendela obrolan di Fragmen baru, Anda perlu menambahkan kode berikut ke aplikasi Anda, di tempat di mana Anda ingin membuka jendela obrolan (misalnya tombol pendengar). Anda juga perlu memberikan nomor lisensi LiveChat Anda:
getSupportFragmentManager ()
. beginTransaction ()
. replace (
R . id . frame_layout ,
ChatWindowFragment . newInstance (
"your_license_number" ,
"your_group_id" , // optional
"visitor_name" , // optional
"visitor_email" , // optional
),
"chat_fragment"
)
. addToBackStack ( "chat_fragment" )
. commit ();
Dimungkinkan juga untuk masuk secara otomatis ke jendela obrolan dengan memberikan nama dan email pengunjung ke Fragmen dan menonaktifkan survei pra-obrolan.
Anda dapat mengubah atau melokalisasi pesan kesalahan, dengan menentukan sumber daya string Anda sendiri dengan id berikut
< string name = " failed_to_load_chat " >Couldn't load chat.</ string >
< string name = " cant_share_files " >File sharing is not configured for this app</ string >
< string name = " reload_chat " >Reload</ string >
Sejak versi 2.4.0, detail migrasi tercantum di CHANGELOG.md.
setUpWindow(configuration);
digantikan oleh setConfiguration(configuration);
setUpListener(listener)
digantikan oleh setEventsListener(listener)
ChatWindowView.clearSession()
dipindahkan ke ChatWindowUtils.clearSession(Context)
ChatWindowView.createAndAttachChatWindowInstance(Activity)
dipindahkan ke ChatWindowUtils.createAndAttachChatWindowInstance(getActivity())
android.permission.READ_EXTERNAL_STORAGE
di AndroidManifest.xml AndaIntegrasi SnapCall memerlukan izin AUDIO dan VIDEO. Untuk mengizinkan pengguna menggunakan integrasi SnapCall, Anda perlu:
AndroidManifest.xml
aplikasi Anda < uses-permission android : name = " android.permission.RECORD_AUDIO " />
< uses-permission android : name = " android.permission.MODIFY_AUDIO_SETTINGS " />
< uses-permission android : name = " android.permission.CAMERA " />
void onRequestAudioPermissions(String[] permissions, int requestCode)
untuk meminta izin pengguna, seperti: @ Override
public void onRequestAudioPermissions ( String [] permissions , int requestCode ) {
if ( Build . VERSION . SDK_INT >= Build . VERSION_CODES . M ) {
this . requestPermissions ( permissions , requestCode );
}
}
void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)
untuk meneruskan hasil ke ChatWindowView
if (! chatWindow . onRequestPermissionsResult ( requestCode , permissions , grantResults )) {
super . onRequestPermissionsResult ( requestCode , permissions , grantResults );
}
Untuk referensi, periksa FullScreenWindowActivityExample.java