微信小程序接入直播功能遇到的问题与解决!

2020-03-26  本文已影响0人  zx一个胖子

一. 目前小程序的直播功能只开放给了一部分商家(电商类的),有资格的话会显示在小程序后台 功能 --> 直播 。

二. 直播功能开通后就可以在小程序后台创建直播间了,当然,这个时候用户是进不了直播间的,需要小程序代码修改一下:
具体看 文档 : https://developers.weixin.qq.com/miniprogram/dev/framework/liveplayer/live-player-plugin.html

三. 直播组件 1.0.3 主要有一些坑:
1. 订阅组件的坑: 订阅组件会自己查询直播间的状态,当直播间为未开播的时候才会显示,其他状态都不显示;
解决:

                  <view  wx:if='{{liveStutas==102}}'>
                        <subscribe room-id='{{roomId}}'></subscribe>
                        <view bindtap="goLive">观看直播</view>
                  </view>

subscribe 组件在显示的时候会覆盖 <view bindtap="goLive">观看直播</view>, subscribe 不显示的时候就会展示<view bindtap="goLive">观看直播</view>

  1. 获取直播间状态的坑:getLiveStatus 获取某个直播间的状态,第一次获取状态以后,一分多钟才会返回一次状态,一分钟内是调取这个api是没反应的。
    解决:
    等官方更新,也正是因为这个坑,才导致的 订阅组件获取的直播状态与getLiveStatus 获取的状态 不同步,进而导致订阅组件不显示的问题出现。

  2. 收集用户openid 的坑: 用户主要分四种进入直播间的方式,扫码进入,订阅卡片进入,分享卡片进入,点击按钮直接进入。主要是前三种比较坑,因为官方没有具体示例。
    解决:
    修改app.js的onshow

    onShow: function (options){
        if (options.scene == 1007 || options.scene == 1008 || options.scene == 1044) { //分享卡片进入
            livePlayer.getShareParams()
            .then(res => {
                if (res.room_id){
                    this.sendOpenid(res.openid, res.room_id)
                }
                // console.log('get room id', res.room_id) // 房间号
                // console.log('get openid', res.openid) // 用户openid
                // console.log('get share openid', res.share_openid) // 分享者openid,分享卡片进入场景才有
                // console.log('get custom params', res.custom_params) // 开发者在跳转进入直播间页面时,页面路径上携带的自定义参数,这里传回给开发者
            }).catch(err => {
                console.log('get share params', err)
            })
        }else{  // 订阅/扫码进入
            if (options.query.room_id){ 
                livePlayer.getOpenid({ room_id: options.query.room_id }) // 该接口传入参数为房间号
                .then(res => {
                    this.sendOpenid(res.openid, options.query.room_id)
                }).catch(err => {
                    console.log('get openid', err)
                })
            }
        }   
    },
上一篇下一篇

猜你喜欢

热点阅读