移动 SDK

Contact Center AI 平台 (CCAI 平台) 移动 SDK 包括 Android SDK 和 iOS SDK。 借助这些 SDK,您可以直接在 iOS 或 Android 移动应用中为客户提供语音和聊天支持。

您可以通过多种方式设置移动应用以与 CCAI 平台搭配使用,包括按照 Android SDK 指南iOS SDK 指南中的说明将移动 SDK 集成到移动应用中。您还可以使用 FlutterReact Native 将移动 SDK 集成到移动应用中。

使用 Flutter 进行集成

本部分介绍了使用 Flutter 将移动 SDK 集成到移动应用中的初始步骤。本部分中的步骤适用于 Android SDK 和 iOS SDK。完成这些步骤后,您可以根据自己的移动平台,继续按照 Android SDK 或 iOS SDK 的具体说明操作。

将移动 SDK 集成到移动应用中不需要使用 Flutter。 您还可以按照以下说明进行集成:

在本地运行示例应用

运行示例应用需要满足以下条件:

  • Flutter:用于构建跨平台应用的框架。

  • Android Studio:用于开发 Flutter 和 Android 应用的集成开发环境。

  • Xcode:用于 iOS 应用开发的集成式开发环境。

  • Cocoapods:适用于 iOS 项目的依赖项管理器。

如需在本地运行示例应用,请按以下步骤操作:

  1. 下载并展开 Flutter 示例 ZIP 文件。

  2. 在终端中,前往 Flutter 示例目录。

  3. 在终端中输入以下代码:

    cd example
    cp .env.example .env
    
  4. .env 文件中输入环境变量值,例如 API_KEY=your_api_key。无需使用英文引号。

  5. 如需安装依赖项,请在终端中输入 flutter pub get

  6. 如需更新公司信息,请前往 android/app/src/main/res/values/strings.xml,然后更新 ujet_company_keyujet_subdomainujet_company_url

  7. 根据您的平台,运行 Android 模拟器或 iOS 模拟器。

  8. 在终端中输入 flutter run

将 CCAI 平台模块导入到您的项目中

将 CCAI 平台模块导入项目需要满足以下条件:

  • JWT 签名 API 端点。如需了解详情,请参阅 SDK 最终用户身份验证

  • 对于 Android,项目的部署目标必须为 iOS 13.0 或更高版本。

  • 对于 iOS,项目的 minSdkVersion 必须为 21 或更高版本。

如需将 CCAI Platform 模块导入您的项目,请按以下步骤操作:

  1. 复制 example/lib/ujet 目录的内容,然后将其粘贴到 Flutter 项目的 lib 目录中。

  2. 前往 example/android/app/src/main/kotlin/co/ujet/flutter_example_app,然后将以下文件复制到 MainActivity 类所在的 Flutter 项目中:

    • UJETModule.kt

    • Application.kt

    • firebase\MyFirebaseMessagingService.kt

    • firebase\FirebaseTokenManager.kt

  3. 打开 XCode,然后将 example/ios/Runner/UJETModule.swift 拖到您的项目中。

  4. 打开 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
      };
    }
    
  5. 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 引擎,请按以下步骤操作:

      1. 打开 info.plist 文件。

      2. FLTEnableImpeller 键设置为 false,如以下代码示例所示:

        <key>FLTEnableImpeller</key>
        <false/>
        

继续集成

如需继续使用 Flutter 进行集成,请根据您的移动平台参阅以下某个页面:

使用 React Native 进行集成

本部分介绍了使用 React Native 将移动 SDK 集成到移动应用中的初始步骤。本部分中的步骤适用于 Android SDK 和 iOS SDK。完成这些步骤后,您可以根据自己的移动平台,继续按照 Android SDK 或 iOS SDK 的具体说明操作。

将移动 SDK 集成到移动应用中不需要 React Native。您还可以按照以下说明进行集成:

在本地运行示例应用

如需在本地运行示例应用,请执行以下操作:

  1. 下载并解压缩 ujet-react-native-example.zip 示例应用。

  2. 打开解压后的文件夹中的 README.md 文件,然后按照说明操作。

从本地服务器运行示例应用

您在上一步中下载的示例应用也可以从本地服务器运行。请按以下步骤进行此操作:

  1. 下载并解压缩 React Native 示例 ZIP 文件。

  2. 访问部署服务器示例的目录。

  3. 输入以下命令:

    cd server
    cp .env.example .env
    Edit .env
    nvm use
    npm install
    npm start```
    

运行 React Native

如需运行 React Native,请按以下步骤操作:

  1. 更改应用目录。

  2. 输入以下命令:

    cd app
    nvm use
    npm install
    bundle install
    npx pod-install
    
  3. 更新公司信息:

    1. src/screens/Home.tsx:更新了 UJET.initialize({}) 中的参数

    2. android/app/src/main/res/values/strings.xml::更新 ujet_company_keyujet_subdomainujet_company_url

  4. 输入命令 npm start

  5. 使用 Meteor 交互式 CLI 或您选择的 IDE 运行 iOS 或 Android 移动应用。

将 CCAI 平台模块导入到您的项目中

本部分介绍如何将 CCAI Platform 模块导入到您的项目中。

要求

您需要使用 JWT 签名 API 端点。请参阅示例应用中的 server/app.js 文件,或参阅最终用户身份验证了解详情。

过程

如需将 CCAI Platform 模块导入您的项目,请按以下步骤操作:

  1. 从示例应用中复制以下文件,并将其粘贴到项目中的相应位置:

    1. app/src/native_modules/UJETInterfaces.ts
    2. app/src/native_modules/UJETNativeModule.ts
    3. app/ios/UJETModule.h
    4. app/ios/UJETModule.m
    5. app/android/src/main/java/com/sampleapp/UJETModule.kt
  2. 打开 UJETNativeModule.ts

    1. 移除以下行:

      import AsyncStorage from '@react-native-async-storage/async-storage';

    2. 修改 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'
        }
      }
      
    3. 更新 SIGNING_BASE_网址 以指向您的签名端点。

  3. 使用以下代码示例进行初始化和启动:

    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 进行集成,请根据您的移动平台参阅以下页面之一: