Init 初始化

1. 引入sdk

下载wechat-mudu.min.js到小程序项目,建议放utils目录下


const Mudu = require('./utils/wechat-mudu.min')

2. 设置小程序code获取session_key地址

本方法已废弃 sdk会在初始化的时候获取用户的微信资料并设置到目睹平台,所以需要设置该地址用户获取用户openid, 详见用户

Mudu.setOption('login_server_url', 'http://xxxxx.com/path/')

3. 手动设置小程序加载模块

初始化之前注册需要初始化的模块, 可配置模块有 'Comment', 'LuckyDraw', 'PPT', 'Vote', 'Player' , 若不配置register_modal, 默认初始化所有模块

Mudu.setOption('register_modal', ['Comments', 'Vote', 'PPT'])

4. 初始化

setOption, storage, transfer等之外的接口,在初始化完成之后执行才有效.


Mudu.Init(
    // 频道id
    41988,

    // 初始化完成的回调函数,无参数
    function () {
        console.log('Mudu Web Sdk 初始化成功')
    }
)

Room.Init.Over 事件

Room.Init.Over事件会在sdk初始化完成后被触发

Mudu.MsgBus.On(
    // 事件名,值为Room.Init.Over
    'Room.Init.Over',

    // 事件处理函数,无参数
    function () {
        console.log('初始化完成')
    }
)

Room.Init.Error 事件

Room.Init.Error事件会在sdk初始化失败后被触发, 通常原因是该频道所属的目睹用户不是专业版或者企业版,或者不是流量计费用户。

Mudu.MsgBus.On(
    // 事件名,值为Room.Init.Error
    'Room.Init.Error',

    // 事件处理函数,初始化错误对象
    function (err) {
        throw err
    }
)

获取sdk初始化状态

// 返回sdk初始化状态,类型为boolean:`true`为初始化成功, `false`为初始化失败或尚未完成初始化
var initResult = Mudu.GetInitStatus()

提示

如果您希望在使用sdk时,观众的使用的是您自定义的用户信息,我们推荐下面的写法:

function init(actId, name, avatar, assign_id) {
    return new Promise(function(resolve, reject){
        Mudu.Init(actId, function(){
            Mudu.Room.User.Assign({
                name: name, // string
                avatar: avatar, // string 网络链接
                assignId: assign_id // B端平台识别id string
            }, function(){
                resolve()
            })
        });
        Mudu.MsgBus.On('Room.Init.Error', function (e) {
            reject(e)
        });
    })
}
init(8000024, 'nick', 'https://xxxx', 'your_uniqueId').then(function(){ // your_uniqueId 推荐使用用户的openId或unionId,方便后续在目睹平台查找用户
    // 业务逻辑
}, function(e){
    // 出错
});

关于小程序处于后台状态时,socket连接会出现异常的情况

具体描述:小程序进入后台时,会出现捕获不到socket断开的情况,故针对这种情况提供下述方法

//index.js
//获取应用实例
const app = getApp()
const Mudu = require('./utils/wechat-mudu') // 替换成项目中的实际路径

Page({
  data: {

  },
  onLoad: function () {
    Mudu.Init(
        // 频道id
        41988,

        // 初始化完成的回调函数,无参数
        function () {
            console.log('Mudu Web Sdk 初始化成功')
        }
    )
  },
  onShow: function() {
    try {
        if ('function' === typeof Mudu.Room.reconnectSocket) {
             Mudu.Room.reconnectSocket() // 该方法在Mudu.Init成功后,才会挂载在Mudu.Room上
        }
    } catch (e) {
        console.warn('reconnect mudu socket error: ', e)
    }
  },
  onHide: function() {
    try {
        if ('function' === typeof Mudu.Room.closeSocket) {
            Mudu.Room.closeSocket() // 该方法在Mudu.Init成功后,才会挂载在Mudu.Room上
        }
    } catch (e) {
        console.warn('close mudu socket error: ', e)
    }
  }
})

results matching ""

    No results matching ""