Sie können mobile Apps auf verschiedene Arten für die Verwendung mit der Contact Center AI Platform (CCAI Platform) einrichten, unter anderem mit Flutter. Auf dieser Seite erfahren Sie, wie Sie das Android SDK mit Flutter in eine Android-App einbinden.
Hinweis
Bevor Sie der Anleitung auf dieser Seite folgen, müssen Sie zuerst die Anleitung unter Mit Flutter einbinden befolgen.
SDK in eine Android-App einbinden
So binden Sie das SDK in eine Android-App ein:
Aktualisieren Sie in der Datei
android/build.gradlein Ihrem Flutter-BeispielverzeichnisminSdkVersionauf 21 oder höher.Fügen Sie in der Datei
android/src/main/AndroidManifest.xmlFolgendes hinzu:<application> <activity android:name="co.ujet.android.activity.UjetActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.BROWSABLE"/> <!-- TODO: Change to your custom URL scheme. Config from Portal > Developer Settings > Mobile App > Enable Send SMS to Download App > Android App > URL --> <data android:host="co.ujet.flutter_example_app" android:path="/smartchannel" android:scheme="ujet" /> </intent-filter> </activity> <meta-data android:name="co.ujet.android.companyKey" android:value="@string/ujet_company_key"/> <meta-data android:name="co.ujet.android.companyName" android:value="@string/ujet_company_name"/> <meta-data android:name="co.ujet.android.subdomain" android:value="@string/ujet_subdomain"/> <meta-data android:name="co.ujet.android.companyUrl" android:value="@string/ujet_company_url"/> </application>Aktualisieren Sie im Tag
<application>den Wertandroid:nameauf.Application, wie im folgenden Codebeispiel:<!--Change the value of android:name to .Application --> <application android:name=".Application" android:label="Demo Application" android:icon="@mipmap/ic_launcher">Aktualisieren Sie
android/build.gradlewie im folgenden Codebeispiel:allprojects { repositories { google() mavenCentral() maven { url "https://sdk.ujet.co/android/" } } }Aktualisieren Sie
android/app/build.gradlewie im folgenden Codebeispiel:dependencies { // Use UJET SDK version 2.6.0 or latest to support recent push notification changes. def ujetSdkVersion = "x.y.z" implementation "co.ujet.android:ujet-android:$ujetSdkVersion" implementation "co.ujet.android:cobrowse:$ujetSdkVersion" }Aktualisieren Sie
res/values/strings.xmlwie im folgenden Codebeispiel. Erstellen Sie diese Datei, falls sie noch nicht vorhanden ist.<resources> <string name="ujet_company_key">YOUR_COMPANY_KEY</string> <string name="ujet_company_name">YOUR_COMPANY_NAME</string> <!-- If your tenant / portal url ends with "ujet.co" then set ujet_subdomain string only (ignore ujet_company_url), otherwise set ujet_company_url only (ignore ujet_subdomain) following below instructions. --> <!-- To get subdomain, extract string content between 'https://' and first '.' of your tenant/portal URL. Example, If your tenant url is https://XXX.YYY.ZZZ/ then subdomain will be XXX --> <string name="ujet_subdomain">YOUR_SUBDOMAIN</string> <!-- Use tenant url as company url here, it should be in format of https://XXX.YYY.ZZZ/api/v2 (here XXX should match with your subdomain) --> <string name="ujet_company_url">YOUR_COMPANY_URL</string> </resources>Erstellen Sie ein Firebase-Projekt oder registrieren Sie diese App, falls Sie bereits ein Projekt haben. Laden Sie die Datei
google-service.jsonherunter und legen Sie sie in Ihrem Projekt im folgenden Verzeichnis ab:example/android/app/.
Modul registrieren
Öffnen Sie MainActivity.kt und initialisieren Sie UJETModule, wie im folgenden Codebeispiel, um das Modul zu registrieren:
class MainActivity : FlutterActivity() {
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
//Register and Initialize UJETModule
UJETModule.init(flutterEngine.dartExecutor.binaryMessenger, applicationContext)
}
}
Android-Push-Benachrichtigungen einrichten
Folgen Sie dieser Anleitung, wenn Sie Push-Benachrichtigungen nativ einbinden möchten. Achten Sie darauf, dass Sie das Firebase-Verzeichnis wie unter SDK in eine Android App einbinden beschrieben in Ihr Android-Projekt kopiert und eingefügt haben.
So richten Sie Android-Push-Benachrichtigungen ein:
Fügen Sie in der Datei
build.gradleauf App-Ebene eine Firebase-Abhängigkeit für Push-Benachrichtigungen hinzu, wie im folgenden Codebeispiel:dependencies { implementation platform("com.google.firebase:firebase-bom:32.8.0") implementation 'com.google.firebase:firebase-messaging' }Aktualisieren Sie
AndroidManifest.xmlwie im folgenden Codebeispiel:<application> <service android:name=".firebase.MyFirebaseMessagingService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> </application>Fügen Sie auf Stammebene Ihres Projekts in
build.gradleein Google-Dienste-Plug-in hinzu, wie im folgenden Codebeispiel:plugins { id 'com.google.gms.google-services' version '4.3.8' apply false }Fügen Sie auf App-Ebene Ihres Projekts in
build.gradleein Google-Dienste-Plug-in hinzu, wie im folgenden Codebeispiel:plugins { id "com.android.application" id "kotlin-android" id "dev.flutter.flutter-gradle-plugin" id 'com.google.gms.google-services' // google-services plugin }Erstellen Sie
MyFirebaseMessagingService, dasFirebaseMessagingServiceimplementiert, wie im folgenden Codebeispiel:class MyFirebaseMessagingService: FirebaseMessagingService() { private var firebaseTokenManager: FirebaseTokenManager? = null override fun onCreate() { super.onCreate() firebaseTokenManager = FirebaseTokenManager(this) } override fun onNewToken(token: String) { firebaseTokenManager?.updateToken(token) } override fun onMessageReceived(message: RemoteMessage) { if (Ujet.canHandlePush(message.data)) { Log.d("Firebase", "Handle the push message by UJET") } else { // Handle your notifications } } }Erstellen Sie
FirebaseTokenManager, wie im folgenden Codebeispiel:class FirebaseTokenManager(context: Context) { private val sharedPreferences = context.getSharedPreferences("${context.packageName}_preferences", Context.MODE_PRIVATE) private var token: String? = null fun getToken(): String? { token = sharedPreferences.getString("firebaseToken", null) if (token == null) { FirebaseMessaging.getInstance().token.addOnCompleteListener { task: Task<String?> -> if (!task.isSuccessful || task.result == null) { return@addOnCompleteListener } token = task.result updateToken(token) } } return token } fun updateToken(token: String?) { sharedPreferences .edit() .putString("firebaseToken", token) .apply() } }