private MiniGameCenter;
private createMiniGameCenter(options, callback) {
try {
if (typeof requirePlugin !== 'undefined') {
if (!this.MiniGameCenter) {
this.MiniGameCenter = requirePlugin('MiniGameCenter', {
enableRequireHostModule: true,
customEnv: {
wx,
},
}).default;
}
const minigameCenter = new this.MiniGameCenter(options);
if (typeof minigameCenter === 'undefined' || typeof minigameCenter.on === 'undefined') {
// 插件初始化失败
console.error('minigameCenter create error');
} else {
// 等待插件初始化完成
minigameCenter.on('ready', () => {
// 插件ready之后再在其他场景使用,后续通过是否存在GameGlobal.minigameCenter对象来判断组件是否初始化完成
DataManager.Instance.minigameCenter = minigameCenter;
// do something
callback(minigameCenter);
});
minigameCenter.on('error', (err) => {
console.log('插件初始化失败', err);
});
}
}
} catch (e) {
// 基础库版本过低
console.error(e);
}
}
// // 创建组件,默认隐藏入口
this.createMiniGameCenter(
{
autoShow: false,
},
() => {
// 先判断组件是否初始化完成
if (DataManager.Instance.minigameCenter) {
// 在游戏需要显示的场景手动显示入口
// 此处建议在回调里判断根据游戏逻辑代码判断当前场景是否需要显示
DataManager.Instance.minigameCenter.show();
// 设置tabs
DataManager.Instance.minigameCenter.setTabs(['chat', 'player']);
// 获取rawData,登录,请求服务器,获取signature
DataManager.Instance.minigameCenter.on('authorize', (authorizeData) => {
if (authorizeData.rawData) {
wx.login({
success(res) {
if (res.code) {
wx.cloud
.callFunction({
name: 'chatLogin',
data: {
code: res.code,
rawData: authorizeData.rawData,
},
})
.then((res) => {
DataManager.Instance.minigameCenter.setChatSignature({ signature: res.result });
// 如果配置了互动消息,建议在确认已设置签名后再显示“发送到世界频道”的按钮
})
.catch(console.error);
} else {
console.log(`登录失败!${res.errMsg}`);
}
},
});
}
});
}
}
);
有大佬知道怎么解决么?