Einbetten eines mobilen Chat-Fensters in eine Android-Anwendung für
LiveChat: https://developers.livechat.com/docs/getting-started/installing-livechat/android-widget/
So fügen Sie ein Projekt in Ihren Build ein:
Schritt 1. Fügen Sie das JitPack-Repository zu Ihrer Build-Datei hinzu. Fügen Sie es in Ihrem Stammverzeichnis build.gradle am Ende der Repositorys hinzu:
allprojects {
repositories {
.. .
maven { url ' https://jitpack.io ' }
}
}
Schritt 2: Fügen Sie die Abhängigkeit hinzu
dependencies {
implementation 'com.github.livechat:chat-window-android:v2.4.3'
}
Für Ihre Bewerbung benötigen Sie eine Erlaubnis zur Nutzung des Internets. Fügen Sie die folgende Zeile zu Ihrer AndroidManifest.xml hinzu:
< uses-permission android : name = " android.permission.INTERNET " />
Es gibt mehrere Möglichkeiten, diese Bibliothek zu nutzen. Um alle Funktionen nutzen zu können, empfehlen wir Ihnen, das Chat-Fenster als Ansicht hinzuzufügen, entweder mithilfe einer statischen Methode, die Ihrer Aktivität eine Ansicht hinzufügt, oder als eingebettete Ansicht in Ihrer XML-Datei. Solange ChatWindowView initialisiert ist, erhalten Sie Ereignisse, wenn eine neue Nachricht eingeht.
Zuerst müssen Sie Ihr Chat-Fenster konfigurieren
Verwenden Sie einfach den ChatWindowConfiguration.java-Konstruktor. Beachten Sie, dass die Lizenznummer obligatorisch ist.
configuration = new ChatWindowConfiguration (
"your_licence_number" ,
"group_id" , // optional
"Visitor name" , // optional
"[email protected]" , // optional
customParamsMap // optional
);
Sie können auch new ChatWindowConfiguration.Builder()
verwenden.
Es gibt zwei empfohlene Möglichkeiten, ChatWindow zu verwenden.
Sie müssen lediglich ein Chatfenster erstellen, anhängen und initialisieren. Etwas in der Art:
public void startFullScreenChat () {
if ( fullScreenChatWindow == null ) {
fullScreenChatWindow = ChatWindowUtils . createAndAttachChatWindowInstance ( getActivity ());
fullScreenChatWindow . setEventsListener ( this );
fullScreenChatWindow . init ( configuration );
}
fullScreenChatWindow . showChatWindow ();
}
Wenn Sie den Ort und die Größe der ChatWindowView steuern möchten, können Sie sie Ihrer App hinzufügen, indem Sie entweder eine Ansicht in XML einfügen
< com .livechatinc.inappchat.ChatWindowViewImpl
android : id = " @+id/embedded_chat_window "
android : layout_width = " match_parent "
android : layout_height = " 400dp " />
oder die Ansicht direkt aufblasen
ChatWindowViewImpl chatWindowView = new ChatWindowViewImpl ( MainActivity . this );
und dann ChatWindow wie beim Vollbildfenster-Ansatz initialisieren:
public void startEmmbeddedChat ( View view ) {
emmbeddedChatWindow . setEventsListener ( this );
emmbeddedChatWindow . init ( configuration );
// ...
emmbeddedChatWindow . showChatWindow ();
}
Abhängig von Ihrem Anwendungsfall möchten Sie ChatWindow möglicherweise ausblenden, wenn der Benutzer auf die Schaltfläche „Zurück“ klickt. Sie können unsere Funktion onBackPressed() verwenden, die die Ansicht verbirgt, wenn sie sichtbar ist, und true zurückgibt. Fügen Sie in Ihrer Aktivität/Ihrem Fragment Folgendes hinzu:
@ Override
public boolean onBackPressed () {
return fullScreenChatWindow != null && fullScreenChatWindow . onBackPressed ();
}
Dieser Listener bietet Ihnen die Möglichkeit:
Um Ihren Benutzern die Möglichkeit zu geben, Dateien zu senden, müssen Sie dies über supportFileSharing
in Ihrem ChatWindowView
einrichten. Falls das Betriebssystem die Absicht, Dateien auszuwählen, nicht verarbeiten kann, können Sie dies über den Rückruf onFilePickerActivityNotFound
in ChatWindowEventsListener
beheben.
Sie können das Standardverhalten des Chat-Widgets deaktivieren, wenn der Benutzer einen Link auswählt, indem Sie handleUri
-Methode von ChatWindowEventsListener implementieren.
@ Override
public boolean handleUri ( Uri uri ) {
// Handle uri here...
return true ; // Return true to disable default behavior.
}
Möglicherweise möchten Sie die Benutzererfahrung anpassen, wenn Fehler auftreten, z. B. Probleme mit der Internetverbindung. Durch die Rückgabe von true
in onError
Rückrufmethode übernehmen Sie die Verantwortung für die Behandlung von Fehlern, die aus dem Chat-Fenster kommen.
Bitte beachten Sie, dass das Chatfenster, sobald es geladen ist, Verbindungsprobleme lösen kann, indem es sporadisch versucht, die Verbindung wiederherzustellen. Dieser Fall kann erkannt werden, indem die folgende Bedingung in der Rückrufmethode onError implementiert wird.
@ 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 ;
}
Nachdem sich Ihr Benutzer von der App abgemeldet hat, möchten Sie möglicherweise die Chat-Sitzung löschen. Sie können dies tun, indem Sie von überall in der App die statische Methode für ChatWindowUtils.clearSession()
aufrufen. Falls Ihr ChatWindowView
während des Abmeldevorgangs angehängt wird, müssen Sie es auch neu laden, indem Sie chatWindow.reload()
nach dem ClearSession-Code aufrufen. Siehe FullScreenWindowActivityExample.java
Wenn Sie nicht benachrichtigt werden müssen, wenn der Benutzer eine neue Nachricht in einem ausgeblendeten ChatWindow erhält, können Sie ChatWindowActivity
oder ChatWindowFragment
verwenden
Um ein Chatfenster in einer neuen Aktivität zu öffnen, müssen Sie ChatWindowActivity
in Ihrem Manifest deklarieren. Fügen Sie die folgende Zeile zu AndroidManifest.xml
zwischen den Tags <application></application>
hinzu:
< activity
android : name = " com.livechatinc.inappchat.ChatWindowActivity "
android : configChanges = " orientation|screenSize "
android : exported = " false "
/>
Fügen Sie abschließend den folgenden Code zu Ihrer Anwendung an der Stelle hinzu, an der Sie das Chat-Fenster öffnen möchten (z. B. Button-Listener). Sie müssen einen Kontext (Ihr Aktivitäts- oder Anwendungsobjekt) und Ihre LiveChat-Lizenznummer angeben:
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 );
Es ist auch möglich, sich automatisch beim Chat-Fenster anzumelden, indem Sie den Namen und die E-Mail-Adresse des Besuchers angeben und die Umfrage vor dem Chat deaktivieren.
Um das Chat-Fenster in einem neuen Fragment zu öffnen, müssen Sie den folgenden Code zu Ihrer Anwendung an der Stelle hinzufügen, an der Sie das Chat-Fenster öffnen möchten (z. B. Button-Listener). Sie müssen außerdem Ihre LiveChat-Lizenznummer angeben:
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 ();
Es ist auch möglich, sich automatisch beim Chat-Fenster anzumelden, indem Sie den Namen und die E-Mail-Adresse des Besuchers im Fragment angeben und die Umfrage vor dem Chat deaktivieren.
Sie können Fehlermeldungen ändern oder lokalisieren, indem Sie Ihre eigenen String-Ressourcen mit den folgenden IDs definieren
< 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 >
Seit Version 2.4.0 werden Migrationsdetails in CHANGELOG.md aufgeführt.
setUpWindow(configuration);
wird ersetzt durch setConfiguration(configuration);
setUpListener(listener)
wird durch setEventsListener(listener)
ersetztChatWindowView.clearSession()
wird nach ChatWindowUtils.clearSession(Context)
verschoben.ChatWindowView.createAndAttachChatWindowInstance(Activity)
wird nach ChatWindowUtils.createAndAttachChatWindowInstance(getActivity())
verschoben.android.permission.READ_EXTERNAL_STORAGE
angebenFür die SnapCall-Integration sind AUDIO- und VIDEO-Berechtigungen erforderlich. Damit Ihre Benutzer die SnapCall-Integration nutzen können, müssen Sie Folgendes tun:
AndroidManifest.xml
die folgenden Berechtigungen hinzu < 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)
um den Benutzer nach Berechtigungen zu fragen, etwa so: @ 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)
um das Ergebnis an ChatWindowView
zu übergeben if (! chatWindow . onRequestPermissionsResult ( requestCode , permissions , grantResults )) {
super . onRequestPermissionsResult ( requestCode , permissions , grantResults );
}
Als Referenz sehen Sie sich FullScreenWindowActivityExample.java
an