using System.Collections; using System.Collections.Generic; using DefaultNamespace; using MotionFramework; using Newtonsoft.Json; using UnityEngine; // using LitJson; /// /// 接收来自网页的消息 /// public class MessageHandler : MonoBehaviour { /// /// 接收来自网页的消息 /// /// 来自网页的消息字符串 public void ReceiveMessageFromWeb(string message) { // 打印原始消息到控制台 Debug.Log($"收到来自网页的消息: {message}"); // 尝试解析JSON消息 ParseJsonMessage(message); } /// /// 解析JSON消息 /// /// JSON格式的消息字符串 private void ParseJsonMessage(string jsonMessage) { try { // 使用LitJson解析JSON消息 MotionEngine.GetModule().messageData = JsonConvert.DeserializeObject(jsonMessage); // 打印解析后的消息数据 Debug.Log($"成功解析JSON消息 - 代码: {MotionEngine.GetModule().messageData.code}"); // 处理解析后的消息数据 HandleParsedMessage(MotionEngine.GetModule().messageData); } catch (System.Exception ex) { // 如果JSON解析失败,记录错误信息 Debug.LogError($"JSON解析失败: {ex.Message}"); Debug.LogError($"原始消息内容: {jsonMessage}"); } } /// /// 处理解析后的消息数据 /// /// 解析后的消息数据 private void HandleParsedMessage(MessageData messageData) { // 如果有code参数,设置code并创建游戏模块 if (!string.IsNullOrEmpty(messageData.code)) { Debug.Log($"正在处理消息代码: {messageData.code}"); Apis.SetCode(messageData.code); GameLauncher.Instance.CreateGameModules(); } // // 根据type参数执行相应的处理逻辑 // if (!string.IsNullOrEmpty(messageData.type)) // { // Debug.Log($"正在处理消息类型: {messageData.type}"); // // switch (messageData.type.ToLower()) // { // case "none": // // none: 没有任何状态,不做任何操作 // Debug.Log("消息类型为none,不执行任何操作"); // break; // // case "sign": // // sign: 显示签到弹窗 // Debug.Log("消息类型为sign,显示签到弹窗"); // if (UIManager.Instance != null) // { // UIManager.Instance.ShowPage("签到"); // } // else // { // Debug.LogError("UIManager实例不存在,无法显示签到弹窗"); // } // break; // // default: // Debug.LogWarning($"未知的消息类型: {messageData.type}"); // break; // } // } } }