微信小程序呼叫设备

一、业务说明

微信最近推出了手机微信呼叫设备的VOIP插件 和 Linux SDK内部体验版本,之前公司小程序开发过设备呼叫微信的功能,设备如何呼叫微信可以看之前的博客:微信小程序音视频通话(for硬件)组件的使用-CSDN博客。此次推出的微信呼叫设备功能,实现了小程序与设备之间的双向通话, 手机呼叫设备的说明可以看官方文档:手机微信呼叫设备(Linux 直连) | 微信开放文档

二、具体代码实现

2.1 小程序代码

  • 引入VOIP体验版插件
"plugins": {
    "wmpf-voip": {
    "version": "dev-921a8b2691ed173478641355f335b52b",
    "provider": "wxf830863afde621eb"
    }
}
  • 手机微信段发起微信通话
callDeviceByVoip: function (deviceId, modelId, sn) {
    // 引入设备与视频通话
    const wmpfVoip = requirePlugin('wmpf-voip').default  
    // 异步获取 roomId 的方式
    wmpfVoip.callDevice({
        roomType: 'video', // 房间类型。voice: 音频房间;video: 视频房间
        sn: deviceId,
        modelId: modelId,
        nickName: deviceId,
        chargeType: 'duration',  // 计费方式 
        timeLimit: 5000
    }).then(response => {
        const roomId = response.roomId;
      
        wx.request({
            url:  "http://192.168.1.190:8090/wx_user/updateRoomId",
            method: 'POST', //请求方式
            header: { 
                'Content-Type': 'application/json',
            },
            data: {                      
                roomId: roomId,
                wxUserId: getApp().userBean.wxUserId,
                callDevice: sn
            },
            success: function(res) {  
            }
    		}) 
      
        // 获取当前页面栈
        const pages = getCurrentPages();
        // 判断当前页面是否是插件页面
        const isPluginPage = pages.some(page => page.route === wmpfVoip.CALL_PAGE_PATH);
  
        if (!isPluginPage) {
            wx.redirectTo({
            url: wmpfVoip.CALL_PAGE_PATH,
            });
        }
      
    // 在这里可以使用 roomId 进行后续的操作
    }).catch(error => {
        console.error('callDevice failed:', error);
        wx.showToast({
        title: '呼叫失败',
        icon: 'error',
        });
    });
}

你可能感兴趣的:(微信小程序)