前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >在腾讯会议SDK中如何实现会中拉起自定义通讯录组件

在腾讯会议SDK中如何实现会中拉起自定义通讯录组件

原创
作者头像
liquid
修改2024-11-22 18:03:59
修改2024-11-22 18:03:59
1510
举报
文章被收录于专栏:腾讯会议

组织架构信息属于客户重要数据,对部分客户来说,并不希望这些信息同步到三方平台。使用SDK接入腾讯会议可以实现不同步组织架构到腾讯侧的情况下,仍然能方便的拉起自定义通讯录组件,按组织架构选人。

功能介绍

SDK会中目前有两个邀请入口,分别是会中工具栏的 邀请 按钮入口和成员管理 邀请成员 按钮入口。默认点击后会调起SDK自带的选人/呼叫弹框,实现邀请企业成员入会、呼叫电话和Rooms/传统视频会议终端等功能。

管理成员中的邀请成员入口支持在企管平台关闭,具体方法是管理员在企管平台-企业管理-账户管理-通讯录设置中,将企业通讯录选项设置为关闭状态。

实现自定义邀请后,可以看到此时的弹框不再是腾讯会议默认的邀请弹窗,变成了客户自己的通讯录组件。此外开发者也可以在自定义的弹框里面加上呼叫PSTN、Rooms或者H.323/SIP终端等功能。

实现方法

会中工具栏邀请自定义回调实现

1 开启会中邀请回调开关

这一步需要调用到enableInviteCallback接口,主要作用是设置是否开启回调以及控制是否显示sdk默认的邀请弹窗。

接口定义:void enableInviteCallback(bool enable, bool show)

函数说明:设置是否使用邀请回调,如果使用,点击会议中界面下方工具栏上的邀请按钮,会触发InMeetingCallback.onInviteMeeting回调,并回调会议信息。

接口调用时机:该接口入会之前设置有效,建议初始化回调之后,登录之前设置。

参数说明:

参数名

参数类型

是否必填

参数说明

enable

bool

是否开启回调,默认为false,不开启回调

show

bool

是否还显示SDK的邀请页面。如果enable参数为false,则show参数会被强制设置为true。

2 实现会中邀请回调函数

在开启会中邀请回调后,用户会中点击工具栏上的邀请按钮会触发InMeetingCallback.onInviteMeeting回调,开发者可以在回调中收到会议信息用于后续处理。当选择自行实现邀请弹窗时,在该回调触发弹窗动作。

接口定义:void onInviteMeeting(string invite_info)

函数说明:用户在会议中界面点击下方工具栏邀请按钮后的回调。

接口调用时机:SDK自动触发。

参数说明:

参数名

参数类型

参数说明

invite_info

string

邀请的相关信息,JSON字符串

invite_info内容

代码语言:txt
复制
{
    "begin_time": 1629194320, // 会议开始时间戳
    "end_time": 1629197920, // 会议结束时间戳
    "create_type": 1, // 会议类型,1 普通会议,2 快速会议
    "device_dial_in_guide": "", // 设备接入指南信息
    "general_content": "", // 邀请入会的通用信息
    "host_name": "", // 主持人昵称
    "meeting_code": "", // 会议号
    "meeting_url": "", // 会议链接
    "mra": "",
    "mra_ics": "",
    "password": "", // 会议密码
    "pstn": "",
    "meeting_pstn_json": "",
    "subject": "",// 会议主题
    "participate_id": "" //参会者id
}

3 自定义弹窗功能实现

自定义弹框中,开发者可按需实现邀请通讯录成员、邀请PSTN电话用户、邀请Rooms/传统视频会议终端等功能。

  • 邀请通讯录成员入会

邀请通讯录成员入会分为查询会中成员、通讯录组件选人、呼叫用户入会三步。查询会中成员使用rest api查询实时会中成员列表接口,需要app后台部署rest api服务向腾讯后台发起请求;通讯录组件由开发者自行实现,用户选人时将前一步查到的已入会成员状态设置为不可选;选完人后,调用addUsersWithParam接口,传入待呼叫的成员userid来呼叫成员入会,邀请结果在onAddUsersResult回调函数中返回。

查询实时会中成员列表addUsersWithParam接口用法比较简单,可参考下面的接口定义使用。

  • 邀请PSTN电话用户入会

邀请PSTN电话入会需要调用rest api的批量外呼接口,呼通前需要取消可调用批量取消外呼接口。

  • 邀请Rooms、H.323/SIP终端入会

呼叫Rooms、H.323/SIP终端入会使用的是rest api的呼叫会议室接口,呼叫Rooms时入参填meeting_room_id参数,呼叫H.323/SIP终端时填mra_address参数。呼通前取消调用取消呼叫会议室接口。

会中管理成员邀请自定义回调实现

与上面的会中工具栏邀请自定义回调实现相比,这里只有打开回调开关、实现回调使用和邀请通讯录成员参会步骤有差异,其他实现步骤都相同,因此这里只介绍打开回调开关、实现回调步骤和邀请通讯录成员步骤。

1 开启会中管理成员邀请回调开关

这一步需要调用到enableInviteUsersCallback,主要作用是设置是否开启回调以及控制是否显示sdk默认的邀请弹窗。

接口定义:void enableInviteUsersCallback(bool enable, bool show)

函数说明:设置是否使用添加成员的回调,如果使用,点击会议中界面成员列表上的添加成员按钮,会触发InMeetingCallback.onInviteUsers回调,并回调会中成员列表信息(users)和场景类型(user_type)。

接口调用时机:设置接口要早于点击会中界面成员列表添加按钮,建议初始化回调之后登录之前设置。

参数说明:

参数名

参数类型

是否必填

参数说明

enable

bool

是否开启回调,默认为false

show

bool

是否显示SDK的通讯录页面。如果enable为false,则show参数会被强制设置为true。

2 实现会中邀请回调函数

在开启会中管理成员邀请回调后,用户会中在成员管理页面点添加成员按钮会触发InMeetingCallback.onInviteUsers回调,开发者可以在回调中收到会中成员的userid列表用于后续处理。当选择自行实现邀请弹窗时,在该回调触发弹窗动作。

接口定义:void onInviteUsers(string json_data)

函数说明:用户在会议中界面点击右侧成员列表上方的添加成员按钮的的回调。

接口调用时机:SDK自动触发。

参数说明:

参数名

参数类型

参数说明

json_data

string

会议信息,JSON字符串,内容如下示例

json_data示例:

代码语言:txt
复制
{
    // 邀请的用户userid列表
    "users": ["user1_id","user2_id","user3_id","user4_id"],
    // 用户入会类型,3表示客户端入会、4表示PSTN入会
    "user_type": 3  
}

3 自定义弹窗功能实现

自定义弹框中,开发者可按需实现邀请通讯录成员、邀请PSTN电话用户、邀请Rooms/传统视频会议终端等功能。

  • 邀请通讯录成员入会

由于onInviteUsers回调中会返回会中参会成员的userid列表,因此这里实现只有通讯录组件选人和呼叫用户入会两步。具体实现方法参考前面会中工具栏邀请自定义回调的实现。

  • 邀请PSTN电话用户入会

参考前面会中工具栏邀请自定义回调的实现。

  • 邀请Rooms、H.323/SIP终端入会

参考前面会中工具栏邀请自定义回调的实现。

常见问题及解决方法

Q1:Android端收到邀请或分享回调后显示透明activity但是背景activity显示的不是会中界面,或者关闭activity后没有回到会中界面。

A1:请确保activity设置了如下所示的taskAffinity属性,并在启动activity时调用intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK),如果仍然无法解决问题,请联系技术支持。

代码语言:txt
复制
android:taskAffinity=".meeting.inmeeting.InMeetingActivity" // SDK Version < 3.12.3
android:taskAffinity="com.tencent.wemeet.tmsdk.meeting.inmeeting.InMeetingActivity" // SDK Version >= 3.12.3

Q2:iOS端初始化和登录都有收到成功回调,会中邀请没看到弹框也没收到回调。

A2:未初始化SDK前,先调用了accountService的isLogin函数,导致accountService里面的监听在第一次初始化的时候未生效,而accountService是一个单例,监听的方法写在了后续SDK init时也不会调用。请检查是否在TMSDK init方法前调用AccountService的方法,如isLogin方法,所有的SDK方法需要在TMSDK初始化之后才能使用。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 功能介绍
  • 实现方法
    • 会中工具栏邀请自定义回调实现
      • 1 开启会中邀请回调开关
      • 2 实现会中邀请回调函数
      • 3 自定义弹窗功能实现
    • 会中管理成员邀请自定义回调实现
      • 1 开启会中管理成员邀请回调开关
      • 2 实现会中邀请回调函数
      • 3 自定义弹窗功能实现
  • 常见问题及解决方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档