VOIP呼叫
在进入VOIP呼叫功能开发前:
1. 在app.json中引入插件
{
"plugins": {
"wmpf-voip": {
"version": "latest",
"provider": "wxf830863afde621eb"
}
}
}2. 获取设备的VOIP状态
- 您可通过getDeviceList方法传参isGetVoipStatus来在获取设备列表的时候同步获取
- 也可直接通过getDeviceVoipSubscribeStatus方法来获取
- 状态为0代表未开通过voip或者已拒绝过voip权限;1代表已开通
app.imcamWx.getDeviceList({isGetVoipStatus: true})
.then(res => {
if (res.errCode === 0) console.log(res.deviceList[0].voipStatus) // 0/1
})
app.imcamWx.getDeviceVoipSubscribeStatus(sn)
.then(res => {
if (res.errCode === 0) console.log(res.status) // 0/1
})3. 对于VOIP状态为0的的设备,进行订阅voip
- 调用subscripDeviceVoip方法来订阅
app.imcamWx.subscripDeviceVoip({sn, alias})
.then(res => {
if (res.errCode === 0) console.log('订阅成功')
else {
if (res.errCode === -3) console.error('未检测到引入VOIP插件')
else if (res.errCode === 603) console.log('当前账号已拒绝VOIP权限,需手动去小程序设置里面开启权限')
}
})4. 订阅成功后,发起呼叫
- 按设备上的按键即可发起呼叫
- 若呼叫成功,微信会响起呼叫铃声。接听后,即可进入VOIP通话界面
(可选)5. 其他VOIP相关功能
您可参考VOIP插件官方文档 (opens in a new tab)进行VOIP的其他功能开发,比如通话界面添加自定义按钮,或者监听通话中的事件
- SDK中暴露了wmpfVoip对象,您可通过const wmpfVoip = app.imcamWx.wmpfVoip来直接引用和操作该对象。但请不要重复引用wmpfVoip插件,因为在SDK中已经初始化过了
示例:
this.imcamWx = new ImcamWx()
const wmpfVoip = this.imcamWx.wmpfVoip
wmpfVoip.onVoipEvent(event => { // 初始化SDK后就立即调用。太晚调用可能不生效
console.info(`onVoipEvent`, event)
})