tencent cloud

文档反馈

VoIP(可选)

最后更新时间:2024-05-23 16:39:48
    VoIP 通话是一种通过互联网或 IP 网络传输数字语音数据的电话通话技术,具有成本低、音质高、灵活性强和集成其他通信服务的优势。

    配置VoIP

    iOS

    Android

    TIMPush 推送插件为 Google 平台带来了 VoIP calls 的通知机制,结合Firebase Cloud Messaging (FCM)提供的数据消息能力 以及TUICallKit组件,能够实现具有自定义布局的来电显示界面。

    集成消息推送插件

    本插件在 pub.dev 的包名为: tencent_cloud_chat_push , 您可以收到将其引入 pubspec.yaml 依赖目录中, 也可以执行下列命令, 自动安装。
    flutter pub add tencent_cloud_chat_push

    准备条件

    1. 将您自己的应用注册到 FCM推送平台,得到 AppIDAppKey 等参数以及 google-services.json 文件 ,来实现离线推送功能。
    2. 
    Tencent RTC 控制台,选择您的应用, 在 Chat > Push > Access settings > Android 功能栏,选择 FCM,添加 FCM 的证书,其中,消息类型选择Transparent transmission (data) message
    厂商推送平台
    IM 控制台配置
    
    
    
    
    
    
    

    快速接入

    1. 下载并添加配置文件
    完成控制台厂商推送信息填写后,下载并添加配置文件到工程。将下载的timpush-configs.json文件添加到应用模块的 assets 目录下,将 google-services.json添加到工程app目录下。
    选择下载配置文件 timpush-configs.json
    下载文件 google-services.json
    添加到工程
    
    
    
    
    
    
    
    
    
    2. 集成 TIMPush 插件
    在项目的 app 目录下的build.gradle文件中添加如下依赖:
    implementation "com.tencent.timpush:fcm: xxxxxx"
    说明:
    TIMPush 需要集成 IM SDK 在7.9.5666版本及以上。
    build.gradle中添加的依赖的版本需要与tencent_cloud_chat_push版本对应。
    3. 客户端代码配置
    在您项目 android 路径下 MainActivity 同级目录中,新建一个新的 Application 文件类, 例如可命名为 MyApplication
    如果您已经自定义了一个 Application 类,则可直接复用,不需要再次创建。
    
    
    
    将下列代码粘贴到该文件中, 如上图所示:
    package xxxx.xxxx.xx import com.tencent.chat.flutter.push.tencent_cloud_chat_push.application.TencentCloudChatPushApplication; public class MyApplication extends TencentCloudChatPushApplication { @Override public void onCreate() { super.onCreate(); } }
    说明:
    如果您已经创建了自己的 Application 为了其他用途,请直接 extends TencentCloudChatPushApplication 并保证 onCreate() 函数中,调用了 super.onCreate(); 即可。
    同时,您还需要修改您的 MainActivity 文件:
    
    
    
    打开 android/app/src/main/AndroidManifest.xml 文件,为 <application> 标签,新增指定一个 android:name 参数即可,指向刚制作的自定义 Application 类。如图所示:

    
    
    

    4. 完成工程配置
    在项目级 build.gradle 文件的 buildscript -> dependencies 下添加以下配置:
    buildscript {
    dependencies {
    classpath 'com.google.gms:google-services:4.3.15'
    }
    }
    在项目的 app 目录下的build.gradle文件中添加下方配置:
    apply plugin: 'com.google.gms.google-services'
    5. 注册推送插件
    请在登录完成后, 立即注册推送插件。
    调用 TencentCloudChatPush().registerPush 方法, 需传入上一步定义的点击回调函数。
    此外,您还可选传入 apnsCertificateID iOS 推送证书 ID 及 androidPushOEMConfig Android 推送厂商配置。此二项配置已在前序步骤指定,若无修改必要,可不再传入。
    TencentCloudChatPush().registerPush(onNotificationClicked: _onNotificationClicked);
    6. 实现自动登录
    FCM的data模式只能将离线app唤醒,所以还需要您在onAppWakeUpEvent中实现登录以及拉起APP等操作。
    TencentCloudChatPush().registerOnAppWakeUpEvent(onAppWakeUpEvent: () {
    // TODO: 登录操作
    });
    完成上述步骤后,您可以结合 TUICallKit 使用 TIMPush 的离线推送能力。
    7. 拨打离线推送通话
    如果您要拨打离线推送通话,需要在调用 call 时候设置 OfflinePushInfo 。
    TUIOfflinePushInfo offlinePushInfo = TUIOfflinePushInfo();
    offlinePushInfo.title = "Flutter TUICallKit";
    offlinePushInfo.desc = "This is an incoming call from Flutter TUICallkit";
    offlinePushInfo.ignoreIOSBadge = false;
    offlinePushInfo.iOSSound = "phone_ringing.mp3";
    offlinePushInfo.androidSound = "phone_ringing";
    offlinePushInfo.androidFCMChannelID = "fcm_push_channel";
    offlinePushInfo.iOSPushType = TUICallIOSOfflinePushType.VoIP;
    
    TUICallParams params = TUICallParams(offlinePushInfo: offlinePushInfo);
    TUICallKit.instance.call(callUserId, TUICallMediaType.audio, params);

    常见问题

    应用被终止后,无法显示来电 UI?

    确认收到了推送,收不到推送需要确认下 IM 控制台是否正确上传证书。参见文档上述快速接入的 第一步,看下是否添加正确。
    确认控制台选择了 FCM 数据消息,对照上述准备条件的 第二步.
    确认收到数据消息,过滤日志(关键字:TIMPush),检查下述日志有打印(如果收不到消息,可以使用 排查工具 查看原因):
    
    
    
    确认实现了自动登录。自动登录后才会去拉通话请求,才能显示来电 UI。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持