Contact Center AI 平台 (CCAI 平台) 移动 SDK 包括 Android SDK 和 iOS SDK。 借助这些 SDK,您可以直接在 iOS 或 Android 移动应用中为客户提供语音和聊天支持。
您可以通过多种方式设置移动应用以与 CCAI 平台搭配使用,包括按照 Android SDK 指南或 iOS SDK 指南中的说明将移动 SDK 集成到移动应用中。您还可以使用 Flutter 或 React Native 将移动 SDK 集成到移动应用中。
使用 Flutter 进行集成
本部分介绍了使用 Flutter 将移动 SDK 集成到移动应用中的初始步骤。本部分中的步骤适用于 Android SDK 和 iOS SDK。完成这些步骤后,您可以根据自己的移动平台,继续按照 Android SDK 或 iOS SDK 的具体说明操作。
将移动 SDK 集成到移动应用中不需要使用 Flutter。 您还可以按照以下说明进行集成:
在本地运行示例应用
运行示例应用需要满足以下条件:
Flutter:用于构建跨平台应用的框架。
Android Studio:用于开发 Flutter 和 Android 应用的集成开发环境。
Xcode:用于 iOS 应用开发的集成式开发环境。
Cocoapods:适用于 iOS 项目的依赖项管理器。
如需在本地运行示例应用,请按以下步骤操作:
下载并展开 Flutter 示例 ZIP 文件。
在终端中,前往 Flutter 示例目录。
在终端中输入以下代码:
cd example cp .env.example .env在
.env文件中输入环境变量值,例如API_KEY=your_api_key。无需使用英文引号。如需安装依赖项,请在终端中输入
flutter pub get。如需更新公司信息,请前往
android/app/src/main/res/values/strings.xml,然后更新ujet_company_key、ujet_subdomain和ujet_company_url。根据您的平台,运行 Android 模拟器或 iOS 模拟器。
在终端中输入
flutter run。
将 CCAI 平台模块导入到您的项目中
将 CCAI 平台模块导入项目需要满足以下条件:
JWT 签名 API 端点。如需了解详情,请参阅 SDK 最终用户身份验证。
对于 Android,项目的部署目标必须为 iOS 13.0 或更高版本。
对于 iOS,项目的
minSdkVersion必须为 21 或更高版本。
如需将 CCAI Platform 模块导入您的项目,请按以下步骤操作:
复制
example/lib/ujet目录的内容,然后将其粘贴到 Flutter 项目的lib目录中。前往
example/android/app/src/main/kotlin/co/ujet/flutter_example_app,然后将以下文件复制到MainActivity类所在的 Flutter 项目中:UJETModule.ktApplication.ktfirebase\MyFirebaseMessagingService.ktfirebase\FirebaseTokenManager.kt
打开 XCode,然后将
example/ios/Runner/UJETModule.swift拖到您的项目中。打开
example/lib/ujet/ujet_module.dart并修改_getUserData方法,使其返回适当的最终用户信息。请参阅以下代码示例:static Future<Map<String, String?>> _getUserData() async { String? name = "John Doe"; // end-user name String? identifier = "id1234"; // end user identifier String? email = "jdoe@example.com"; // end user email String? phone = "+12223334444"; // end user phone return { "name": name, "identifier": identifier, "email": email, "phone": phone }; }在
server_api.dart中实现signPayload,以从服务器 API 获取已签名的 JWT 令牌。如需了解详情,请参阅 SDK 最终用户身份验证。
初始化和启动
如需进行初始化并启动,请在终端中输入以下代码:
await UJET.init(key: 'your_ujet_key', baseUrl: 'your_ujet_base_url');
await UJET.start(UjetStartOptions(skipSplashScreen: true));
已知问题
以下是使用 Flutter 将移动 SDK 集成到移动应用中的已知问题:
问题:无法使用屏幕截图智能操作截取屏幕截图。
- 措施:Google 正在努力解决此问题。
问题:在共同浏览会话期间,客服人员端无法投射共同浏览界面(仅限 iOS)。
措施:Google 建议在 iOS 设备上停用 impeller 引擎。如需停用 Impeller 引擎,请按以下步骤操作:
打开
info.plist文件。将
FLTEnableImpeller键设置为false,如以下代码示例所示:<key>FLTEnableImpeller</key> <false/>
继续集成
如需继续使用 Flutter 进行集成,请根据您的移动平台参阅以下某个页面:
使用 React Native 进行集成
本部分介绍了使用 React Native 将移动 SDK 集成到移动应用中的初始步骤。本部分中的步骤适用于 Android SDK 和 iOS SDK。完成这些步骤后,您可以根据自己的移动平台,继续按照 Android SDK 或 iOS SDK 的具体说明操作。
将移动 SDK 集成到移动应用中不需要 React Native。您还可以按照以下说明进行集成:
在本地运行示例应用
如需在本地运行示例应用,请执行以下操作:
下载并解压缩 ujet-react-native-example.zip 示例应用。
打开解压后的文件夹中的 README.md 文件,然后按照说明操作。
从本地服务器运行示例应用
您在上一步中下载的示例应用也可以从本地服务器运行。请按以下步骤进行此操作:
下载并解压缩 React Native 示例 ZIP 文件。
访问部署服务器示例的目录。
输入以下命令:
cd server cp .env.example .env Edit .env nvm use npm install npm start```
运行 React Native
如需运行 React Native,请按以下步骤操作:
更改应用目录。
输入以下命令:
cd app nvm use npm install bundle install npx pod-install更新公司信息:
src/screens/Home.tsx:更新了
UJET.initialize({})中的参数android/app/src/main/res/values/strings.xml::更新
ujet_company_key、ujet_subdomain和ujet_company_url。
输入命令
npm start。使用 Meteor 交互式 CLI 或您选择的 IDE 运行 iOS 或 Android 移动应用。
将 CCAI 平台模块导入到您的项目中
本部分介绍如何将 CCAI Platform 模块导入到您的项目中。
要求
您需要使用 JWT 签名 API 端点。请参阅示例应用中的 server/app.js 文件,或参阅最终用户身份验证了解详情。
过程
如需将 CCAI Platform 模块导入您的项目,请按以下步骤操作:
从示例应用中复制以下文件,并将其粘贴到项目中的相应位置:
app/src/native_modules/UJETInterfaces.tsapp/src/native_modules/UJETNativeModule.tsapp/ios/UJETModule.happ/ios/UJETModule.mapp/android/src/main/java/com/sampleapp/UJETModule.kt
打开
UJETNativeModule.ts移除以下行:
import AsyncStorage from '@react-native-async-storage/async-storage';修改
getUserData函数,以返回准确的最终用户信息:async function getUserData({ name: anonymousName }: SignPayloadData): Promise<Object> { // fetch the end user information from your application return { name: 'John Doe', identifier: 'id1234', email: 'jdoe@example.com', phone: '+12223334444' } }更新 SIGNING_BASE_网址 以指向您的签名端点。
使用以下代码示例进行初始化和启动:
import { UJET } from '../path/UJETNativeModule'; UJET.initialize({ key: 'your-key', baseUrl: 'your-base-url' }); const startUJET = () => { UJET.start({ skipSplashScreen: true }); };- 将
your-key替换为公司 ID。 - 将
your-base-url替换为 CCAI 平台主机的 API 端点,例如https://ccaas-host.uc1.ccaiplatform.com/api/v2/。
- 将
继续集成
如需继续使用 React Native 进行集成,请根据您的移动平台参阅以下页面之一: