网易云信音视频呼叫(呼叫组件 NERtcCallKit)是网易云信推出的含 UI 组件,您只需要几行代码,就可以快速实现音视频呼叫,在 App 中添加包括呼叫、接通、拒接、以及通话中音频和视频的开关控制功能,并包含呼叫的 UI 界面。
呼叫组件基于云信信令、音视频通话 2.0 和 IM 即时通讯产品封装的融合性场景组件,简化了呼叫流程,将呼叫功能以 UI 组件化的形式提供给客户,提高接入效率、降低使用成本。
呼叫组件(NERtcCallKit)支持的功能如下表所示。
功能 |
描述 |
---|---|
自定义 UI | 开发者可以自行设计通话和呼叫页面 UI。 |
音视频呼叫 | App 通过此功能通知被叫用户呼叫请求,呼叫请求类型包括音频和视频呼叫。 |
音视频通话 | 接通后可依照呼叫类型进行实时通话。 |
音视频控制 | 通话过程中可以控制本端音频或视频的开关,以及摄像头方向等。 |
话单 | 每次通话结束后都会收到对应的话单消息,标记本次通话是否接通以及通话时间、类型等数据。 |
限时优惠活动
如果您在用友平台下载了该组件,您可登录云信控制台(用友专属链接)进行开通与管理。
此外通过以上用友平台的专属链接成功注册账号并开通服务的用户,云信将提供特别的优惠价,可在开通账号后联系云信销售或技术支持。
Demo 体验
平台 | 二维码 |
---|---|
Android | |
iOS |
Demo 效果图
技术支持
网易云信提供多种服务,包括客服、技术支持、热线服务、全流程数据监控等,建议扫码添加我们的技术支持,协助接入、测试以及定制需求。
微信咨询 | 在线咨询 | 电话咨询 |
---|---|---|
点击在线咨询 | 4009-000-123 |
1. 申请 AppKey
用户在使用本插件之前需要获取AppKey,AppKey 申请的具体流程请参见 创建应用并获取AppKey。
2. 获取账号
本插件使用中需要 account 和 token,具体请参见 注册云信IM账号。
3. 开通服务
使用音视频呼叫(呼叫组件)之前,需要开通部分能力,开通的具体流程请参见 开通服务。
方式一:在config文件中配置
名称:neteaseCallUIKit 参数:appid 配置示例:
<feature name="neteaseCallUIKit">
<param name="appKey" value="appkey123456" />
</feature>
字段描述:
appKey:云信应用对应的 AppKey,获取方式请参见 创建应用并获取AppKey。
方式二:通过API接口传入
传入方式详见下方 initConfig 接口, 该方式会覆盖方式一配置的值。
调用 initSDK 接口初始化 SDK。
调用 login 接口登录 IM 账号。
调用 toCallPage 接口跳转到呼叫页面。
initConfig() -> initSDK() -> login() -> toCallPage()
配置初始化参数
initConfig({params})
appKey:
account:
token:
apnsCername:
pkCername:
var demo = api.require('neteaseCallUIKit');
demo.initConfig({
appKey: "appkey123456789",
account: "123456789",
token: "123456789",
apnsCername: "",
pkCername: ""
});
初始化音视频呼叫组件
initSDK()
var demo = api.require('neteaseCallUIKit');
demo.initSDK()
登录 IM
login({params}, callback(ret))
appKey:
account:
token:
ret:
{
code:200, // Int类型;失败登录返回 code(登录成功返回 200)
msg:'', // String 类型;失败登录接口信息
loginInfo:{ // 登录信息
account:"123456", // String 类型;账号ID
token:"456789" // String 类型;账号token
}
}
var demo = api.require('neteaseCallUIKit');
demo.login({
account: '123465',
token: '456789'
}, function(ret, err) {
if (ret.code != 200) {
var msg = '登录失败\n错误码:' + ret.code + '\n错误信息:' + ret.msg;
api.toast({
msg: msg,
location: 'middle'
});
} else {
api.toast({
msg: '登录成功',
location: 'middle'
});
}
});
登出 IM
logout(callback(ret))
ret:
{
code:200, // Int 类型;登出失败返回 code(登出成功返回 200)
msg:'' // String 类型;登出失败信息
}
var demo = api.require('neteaseCallUIKit');
demo.logout(function(ret) {
if (ret.code != 200) {
var msg = '登出失败\n错误码:' + ret.code + '\n错误信息:' + ret.msg;
api.toast({
msg: msg,
location: 'middle'
});
} else {
api.toast({
msg: '登出成功',
location: 'middle'
});
}
});
跳转到呼叫页面(主叫)
toCallPage({params})
remoteUserAccid:
currentUserAccid:
type:
var demo = api.require('neteaseCallUIKit');
demo.toCallPage({
remoteUserAccid:'123456',
currentUserAccid:'456789',
type:2
});