VoIP 通话插件
VoIP 通话插件
本插件主要用于提供「小程序音视频通话(for 硬件)」的部分基础能力和统一的通话界面。完整的接入流程和开发指南请参考相关文档。
插件接入可参考:小程序示例代码
1. 小程序引入插件
关于小程序插件详细说明请参考小程序使用插件文档
在「小程序管理后台」添加插件后,使用者还需要要在小程序的 app.json 中声明本插件。可以在主包引入,也可以在分包引入。
// 主包引入
{
"plugins": {
"wmpf-voip": {
"version": "latest", // latest 表示自动使用最新版本。也可使用具体版本,如 2.3.8
"provider": "wxf830863afde621eb"
}
}
}
// 分包引入
{
"subpackages": [
{
"root": "xxxx",
"pages": [],
"plugins": {
"wmpf-voip": {
"version": "latest", // latest 表示自动使用最新版本。也可使用具体版本,如 2.3.8
"provider": "wxf830863afde621eb"
}
}
}
]
}
完成声明后,可以在小程序中来确认是否引入成功
const wmpfVoip = requirePlugin('wmpf-voip').default
console.log(wmpfVoip) // 有结果即表示引入插件成功
2. 插件接口
从功能上,插件提供的接口可以分为以下几类
2.1 发起通话
发起通话的过程中,插件主要负责通话房间创建、发送接听提醒和通话页面的展示。可以在小程序页面或插件页面调用initByCaller 发起通话。
2.2 结束通话
通常情况下,通话结束需要用户点击操作。某些场景下,小程序也可以调用 forceHangUpVoip 主动结束当前通话。
非用户点击结束通话可能有以下场景:
- 用户操作硬件设备的某些按钮结束通话。例如,设备有单独的话机听筒时,用户挂断听筒。
- 用户通话时长超过限制。建议使用
initByCaller的timeLimit参数。插件低版本也可以根据calling事件的keepTime字段计算通话时长。
2.3 通话事件
开发者可以通过 onVoipEvent 绑定通话事件的监听,以便更好的分析通话过程。
2.4 自定义设置
插件提供下列接口对通话过程和界面进行设置
setCustomBtnText:自定义接听页面按钮。setVoipEndPagePath:设置插件功能执行完成后的跳转页面路径。setUIConfig:设置插件通话界面。
2.5 授权查询
在微信客户端内,可以使用wx.getDeviceVoIPList查询当前登录的用户同意/拒绝授权了哪些设备。
在硬件端,可以通过插件getIotBindContactList接口查询用户是否授权某台设备。
推荐开发者在微信用户授权设备时,即 wx.requestDeviceVoIP 回调 success 后,在后台存储 SN 与 openId。在设备端联系人页面中,配合 getIotBindContactList 接口进行授权验证。
2.6 页面参数
小程序可以通过插件getPluginEnterOptions获取从插件页面进入小程序时的启动参数。
如果小程序在前台时进入插件页面,则需要使用getPluginOnloadOptions获取插件通话页面 onLoad 时页面路径中的参数。
浙公网安备 33010602011771号