diff --git a/src/client/mod.rs b/src/client/mod.rs index 16d2402..3d770bc 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -25,17 +25,20 @@ pub async fn run(gateway_url: &str) -> Result<(), Box> { app.ws_sender = Some(ws_sender); app.ws_receiver = Some(ws_receiver); + // 初始化终端 enable_raw_mode()?; let mut stdout = io::stdout(); execute!(stdout, EnterAlternateScreen)?; let backend = CrosstermBackend::new(stdout); let mut terminal = Terminal::new(backend)?; + terminal.clear()?; let result = run_app(&mut terminal, app).await; - disable_raw_mode()?; - execute!(terminal.backend_mut(), LeaveAlternateScreen)?; - terminal.show_cursor()?; + // 清理终端 - 确保正确的顺序,忽略错误 + let _ = execute!(terminal.backend_mut(), LeaveAlternateScreen); + let _ = disable_raw_mode(); + let _ = terminal.show_cursor(); result }