更新记录

1.12.13(2023-12-14)

  • 增加部分异常回调。
  • 增加socket重连机制。
  • 解决登录状态刷新次数太频繁的问题。

1.11.02(2023-11-08)

  • 修复 login 偶现crash的问题

1.10.24(2023-10-25)

  • native sdk增加接口的批量限制
查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 12.0 armeabi-v7a:支持,arm64-v8a:支持,x86:未测试 适用版本区间:9 - 16

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


快速集成腾讯云联络中心TCCC uni-app SDK

本文主要介绍如何快速地将腾讯云 TCCC uni-app SDK 集成到您的项目中。

开发环境要求

  • 建议使用最新的 HBuilderX 编辑器 。
  • iOS 9.0 或以上版本且支持音频的 iOS 设备。
  • Android 版本不低于 4.1 且支持音频的 Android 设备,暂不支持模拟器。并请开启允许调试选项。
  • iOS/Android 设备已经连接到 Internet。

接入前提

关键概念

  1. SdkAppId:是用户在 腾讯云联络中心控制台 上创建的应用 ID,称之为 SdkAppId,一个腾讯云账号最多可以创建20个腾讯联络中心应用,通常为140开头。

  2. UserID :座席或管理员在腾讯云联络中心内配置的账号,通常为邮箱格式,首次创建应用,主账号可前往 站内信(子账号需订阅云联络中心产品消息) 查看联络中心管理员账号和密码。一个 SDKAppID 下可以配置多个 UserID,如果超出配置数量限制,需到 座席购买页 购买更多座席数量。

  3. SecretId 和 SecretKey:开发者调用云 API 所需凭证,通过 腾讯云控制台 创建。

  4. token: 登录票据,需要调用云API接口CreateSDKLoginToken来获取。正确的做法是将 Token 的计算代码和加密密钥放在您的业务服务器上,然后由 App 按需向您的服务器获取实时算出的 Token。

集成 SDK

  1. 通过 npm 方式将 TCCC SDK 集成到您 uni-app 项目中。

    npm i tccc-sdk-uniapp
  2. 购买 uni-app SDK 插件

    登录 uni 原生插件市场,在插件详情页中购买(免费插件也可以在插件市场 0 元购)。购买后才能够云端打包使用插件。购买插件时请选择正确的 appid,以及绑定正确包名

  3. 配置权限

    编辑manifest.json文件,配置麦克风权限,具体如下:

    • ios 需要以下权限

      Privacy - Microphone Usage Description,并填入麦克风使用目的提示语。

    • Android 需要以下权限:

      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
      <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
      <uses-permission android:name="android.permission.RECORD_AUDIO" />
      <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
      <uses-permission android:name="android.permission.BLUETOOTH" />
      <uses-permission android:name="android.permission.READ_PHONE_STATE" />
  4. 配置音频后台运行

    手机应用程序在切换到后台时,操作系统会暂停应用程序的进程以节省资源。这意味着应用程序的所有活动都将被停止,包括播放音频。而ios下需要配置audio background mode才可以保证有音频影响的时候程序不会终止。

! 不配置该权限,通话中切后台的时候会自动中断。

  1. 使用自定义基座打包 uni 原生插件(请使用真机运行自定义基座)

! 什么是自定义调试基座及使用说明,请参见官方教程

代码实现

具体编码实现可参考 API 概览以及示例

  1. 创建 TCCCWorkstation 实例
import {TcccWorkstation,TcccErrorCode} from "tccc-sdk-uniapp";
const tcccSDK = TcccWorkstation.sharedInstance();
// 监听错误事件
tcccSDK.on("onError",(errCode,errMsg) => {

});
  1. 登录
const type = TCCCLoginType.Agent;
// 其中sdkAppId、userId、token的获取参考关键概念对应的字段。
// 坐席登录
tcccSDK.login({
    sdkAppID: 1400000000,   //  请替换为自己的SdkAppId
    userId: "xxx@qq.com", // 替换为座席账号
    token: "xxxx", // 请替换为用调用云API接口 CreateSDKLoginToken 获取的token
    type: type,
},(code,message) => {
    if (code == TcccErrorCode.ERR_NONE) {
        // 登录成功
    } else {
        // 登录失败
    }
});

! token的获取需要后台开发进行,需要调用云API接口CreateSDKLoginToken来获取。

  1. 发起呼叫
// 发起呼叫
tcccSDK.call({
    to: '134xxxx',            // 被叫号码(必填)
    remark: "xxx",            // 号码备注,在通话条中会替代号码显示(可选)
    uui: "xxxx",                  // 户自定义数据(可选)
}, (code,message) => {
    if (code == TcccErrorCode.ERR_NONE) {
        // 发起成功
    } else {
        // 发起失败
    }
});
  1. 处理对端接听回调
tcccSDK.on('onAccepted',(sessionId) => {
    //  对端已接听
});
  1. 主动挂断电话
// 结束通话
tcccSDK.terminate();

常见问题

如何查看 TCCC 日志?

TCCC 的日志默认压缩加密,后缀为 .log。

  • Android:
    • 日志路径:/sdcard/Android/data/包名/files/tccc
  • Ios:
    • 日志路径:在sandbox/Documents 目录下的tccc文件夹

TCCC SDK 在Android能不能支持X86模拟器?

TCCC 目前版本暂时不支持,未来会支持模拟器。如果需要在模拟器运行,建议在ios下的x86模拟器上运行调试。

TCCC SDK 在Ios能不能支持armv7的CPU类型?

因在iPhone 5c以下才有该类型的CPU,目前基本上已经无人使用了。所以我们不适配该类型的CPU,并且在云打包ios的时候需要修改配置manifest.json文件

"validArchitectures": [
    "arm64"
],

ios下手机切后台通话中断

因手机应用程序在切换到后台时,操作系统会暂停应用程序的进程以节省资源。可以在 ios下需要配置audio background mode才可以保证有音频影响的时候程序不会终止。

![](https://tccc.qcloud.com/assets/doc/Agent/uniapp_images/ios_model.png)

手机下能不能处理呼入

如果手机在前台运行的时候有新会话将会收到onNewSession回调,但是我们不建议你在手机上处理呼入(APP在切换到后台时会暂停程序),建议你开通手机接听功能。

其他

隐私、权限声明

1. 本插件需要申请的系统权限列表:

安卓:麦克风,录音 IOS:麦克风,录音

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的 TCCC SDK会采集数据,详情可参考:https://www.qcloud.com

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

请参考开源项目地址的开源协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问