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;
// }
// }
}
}