Puoi configurare le app mobile per funzionare con Contact Center AI Platform (CCAI Platform) in diversi modi, ad esempio con Flutter. Questa pagina mostra come integrare l'SDK Android in un'app Android utilizzando Flutter.
Prima di iniziare
Prima di seguire le istruzioni riportate in questa pagina, devi seguire le istruzioni riportate in Eseguire l'integrazione utilizzando Flutter.
Integrare l'SDK in un'app per Android
Per integrare l'SDK in un'app per Android:
Nel file
android/build.gradlenella directory di esempio di Flutter, aggiornaminSdkVersiona 21 o versioni successive.Nel file
android/src/main/AndroidManifest.xml, aggiungi quanto segue:<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>Nel tag
<application>, aggiorna il valoreandroid:namea.Application, come nel seguente esempio di codice:<!--Change the value of android:name to .Application --> <application android:name=".Application" android:label="Demo Application" android:icon="@mipmap/ic_launcher">Aggiorna
android/build.gradle, come nell'esempio di codice seguente:allprojects { repositories { google() mavenCentral() maven { url "https://sdk.ujet.co/android/" } } }Aggiorna
android/app/build.gradle, come nell'esempio di codice seguente: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" }Aggiorna
res/values/strings.xml, come nell'esempio di codice riportato di seguito. Crea questo se non esiste.<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>Crea un progetto Firebase o, se ne hai già uno, registra questa app. Scarica il file
google-service.jsone inseriscilo nel tuo progetto nella seguente directory:example/android/app/.
Registrare il modulo
Per registrare il modulo, apri MainActivity.kt e inizializza UJETModule, come
nell'esempio di codice seguente:
class MainActivity : FlutterActivity() {
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
//Register and Initialize UJETModule
UJETModule.init(flutterEngine.dartExecutor.binaryMessenger, applicationContext)
}
}
Configurare le notifiche push di Android
Segui questi passaggi se vuoi integrare le notifiche push in modo nativo. Assicurati di aver copiato e incollato la directory firebase nel tuo progetto Android come indicato in Integrare l'SDK in un'app per Android.
Per configurare le notifiche push di Android:
Aggiungi una dipendenza Firebase per le notifiche push nel file
build.gradlea livello di app, come nell'esempio di codice seguente:dependencies { implementation platform("com.google.firebase:firebase-bom:32.8.0") implementation 'com.google.firebase:firebase-messaging' }Aggiorna
AndroidManifest.xml, come nell'esempio di codice seguente:<application> <service android:name=".firebase.MyFirebaseMessagingService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service> </application>Aggiungi un plug-in google-services a livello di root del progetto in
build.gradle, come nel seguente esempio di codice:plugins { id 'com.google.gms.google-services' version '4.3.8' apply false }Aggiungi un plug-in google-services a livello di app del tuo progetto in
build.gradle, come nel seguente esempio di codice:plugins { id "com.android.application" id "kotlin-android" id "dev.flutter.flutter-gradle-plugin" id 'com.google.gms.google-services' // google-services plugin }Crea
MyFirebaseMessagingServiceche implementaFirebaseMessagingService, come nel seguente esempio di codice: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 } } }Crea
FirebaseTokenManager, come nel seguente esempio di codice: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() } }