您可以通过多种方式(包括使用 Flutter)设置移动应用以与 Contact Center AI 平台 (CCAI Platform) 搭配使用。本页介绍了如何使用 Flutter 将 Android SDK 集成到 Android 应用中。
准备工作
在按照本页面上的说明进行操作之前,您必须先按照使用 Flutter 进行集成中的说明操作。
将 SDK 集成到 Android 应用中
如需将 SDK 集成到 Android 应用中,请按以下步骤操作:
在 Flutter 示例目录的
android/build.gradle文件中,将minSdkVersion更新为 21 或更高版本。在
android/src/main/AndroidManifest.xml文件中,添加以下内容:<application> <activity android:name="co.ujet.android.activity.UjetActivity" android:expor>ted=&<quot;true&quo>t; <intent-filter action android:name="and>roid.in<tent.action.VIEW"/ category android:name=&quo>t;andro<id.intent.category.DEFAULT"/ category android:n>ame=&qu<ot;android.intent.category.BROWSABLE"/ !-- TODO: Cha>nge to your custom U>RL scheme. C>onfig from Portal Developer Sett>ings Mobile >App En>able Se<nd SMS to Download App Android App URL -- data android:host="co.ujet.flutter_example_app" >andro<id:path=">/sm<artchanne>l&qu<ot; android:scheme="ujet" / /intent-filter /activity meta-data android:nam>e=&<quot;co.ujet.android.companyKey" android:value="@string/ujet_company_key"/ meta-da>ta < android:name="co.ujet.android.companyName" android:value="@string/ujet_comp>any<_name"/ meta-data android:name="co.ujet.android.subdomain" android:value=&qu>o<t;@string/uj>et_subdomain"/ meta-data android:name="co.ujet.android.companyUrl" android:value="@string/ujet_company_url"/ /application在
<application>标记中,将android:name值更新为.Application,如以下代码示例所示:<!--Change the value of android:name to .Application --> <application android:name=".Application" android:label="Demo Application" android:icon=&>quot;@mipmap/ic_launcher"更新
android/build.gradle,如以下代码示例所示:allprojects { repositories { google() mavenCentral() maven { url "https://sdk.ujet.co/android/"} } }更新
android/app/build.gradle,如以下代码示例所示: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" }更新
res/values/strings.xml,如以下代码示例所示。如果不存在,请创建。<resources> <string name="ujet_company>_key"YOUR_C<>OMPANY_KEY</string string name="uje>t_company_name&qu<ot;YOUR_COM<PANY_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) fo>llo<wing below instructions. -- !-- To get subdomain, extract string content between 'https://' and first '.' of your tenant/portal URL. Example, If your tenant url is http>s:/</XXX.YYY.ZZZ/ then subdomain> will be XXX -<- str>ing <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 subdom<ain) --> < string n>ame="ujet_company_url"YOUR_COMPANY_URL/string /resources创建 Firebase 项目,或者如果您已有 Firebase 项目,请注册此应用。下载
google-service.json文件并将其放入项目中的以下目录:example/android/app/。
注册模块
如需注册模块,请打开 MainActivity.kt 并初始化 UJETModule,如以下代码示例所示:
class MainActivity : FlutterActivity() {
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
//Register and Initialize UJETModule
UJETModule.init(flutterEngine.dartExecutor.binaryMessenger, applicationContext)
}
}
设置 Android 推送通知
如果您想以原生方式集成推送通知,请按以下步骤操作。请务必按照将 SDK 集成到 Android 应用中中的说明,将 firebase 目录复制并粘贴到您的 Android 项目中。
如需设置 Android 推送通知,请按以下步骤操作:
在应用级
build.gradle文件中,为推送通知添加 Firebase 依赖项,如以下代码示例所示:dependencies { implementation platform("com.google.firebase:firebase-bom:32.8.0") implementation 'com.google.firebase:firebase-messaging' }更新
AndroidManifest.xml,如以下代码示例所示:<application> <service android:name=".firebase.MyFirebaseMessagingService" android:export>ed=&q<uot;false&quo>t; <intent-filter action android:name="com.google.fi>rebas<e.MESSAGING_EV>ENT<" /> < /intent->filter /service /application在
build.gradle中,在项目的根级添加一个 google-services 插件,如以下代码示例所示:plugins { id 'com.google.gms.google-services' version '4.3.8'; apply false }在
build.gradle中,在项目的应用级添加 google-services 插件,如以下代码示例所示:plugins { id "com.android.application" id "kotlin-android" id "dev.flutter.flutter-gradle-plugin" id 'com.google.gms.google-services' // google-services plugin }创建实现
FirebaseMessagingService的MyFirebaseMessagingService,如以下代码示例所示: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 } } }创建
FirebaseTokenManager,如以下代码示例所示: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() } }