收藏
回答

社交组件(同玩同聊),使用官方的示例代码,但是真机调试时候一直发送消息失败?

问题类型 插件 AppID 插件版本号 AppID 操作系统 微信版本 基础库版本
Bug wx2ea687f4258401a9 latest wx33fbe642e20a734a Android 最新 1188
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}`);
                                    }
                                },
                            });
                        }
                    });
                }
            }
        );


回答关注问题邀请回答
收藏

1 个回答

  • 李明华
    李明华
    2024-04-25

    有大佬知道怎么解决么?

    2024-04-25
    有用
    回复
登录 后发表内容