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.
Hinweise
Bevor Sie die Anleitung auf dieser Seite befolgen, 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
<application>-Tag denandroid:name-Wert auf.Application, wie im folgenden Codebeispiel gezeigt:<!--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 sie, 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, um das Modul zu registrieren, wie im folgenden Codebeispiel:
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
Gehen Sie so vor, wenn Sie Push-Benachrichtigungen nativ einbinden möchten. Achte darauf, dass du das Firebase-Verzeichnis wie in SDK in eine Android-App einbinden beschrieben in dein Android-Projekt kopiert und eingefügt hast.
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 in
build.gradleauf Stammebene Ihres Projekts ein google-services-Plug-in hinzu, wie im folgenden Codebeispiel:plugins { id 'com.google.gms.google-services' version '4.3.8' apply false }Fügen Sie in
build.gradleauf App-Ebene Ihres Projekts ein „google-services“-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
FirebaseTokenManagerwie 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() } }