From 224e38aa8b6c58a913680722f2811ae62c84e8e8 Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Thu, 26 Mar 2026 14:27:56 +0800 Subject: [PATCH] fix --- punchnet/Views/AppContext.swift | 8 ++++---- punchnet/Views/Network/NetworkView.swift | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/punchnet/Views/AppContext.swift b/punchnet/Views/AppContext.swift index 200e118..94b9e83 100644 --- a/punchnet/Views/AppContext.swift +++ b/punchnet/Views/AppContext.swift @@ -8,8 +8,8 @@ import Foundation import Observation -enum AppContextError: Error { - case nullNetworkSession +struct AppContextError: Error { + let message: String } @Observable @@ -87,12 +87,12 @@ class AppContext { // 连接到对应的网络 func connectNetwork() async throws { guard let session = self.networkSession else { - throw AppContextError.nullNetworkSession + throw AppContextError(message: "未登陆") } // 避免重复连接 guard !vpnManager.isConnected else { - return + throw AppContextError(message: "网络已经连接") } let context = try await SDLAPIClient.connectNetwork(accesToken: session.accessToken) diff --git a/punchnet/Views/Network/NetworkView.swift b/punchnet/Views/Network/NetworkView.swift index fec8e52..14f72b8 100644 --- a/punchnet/Views/Network/NetworkView.swift +++ b/punchnet/Views/Network/NetworkView.swift @@ -191,6 +191,9 @@ struct NetworkDisconnectedView: View { @Environment(AppContext.self) private var appContext: AppContext @State private var isConnecting: Bool = false + @State private var showAlert: Bool = false + @State private var errorMessage: String = "" + var body: some View { VStack(spacing: 20) { Spacer() @@ -220,6 +223,9 @@ struct NetworkDisconnectedView: View { .disabled(isConnecting) Spacer() } + .alert(isPresented: $showAlert) { + Alert(title: Text("提示"), message: Text(errorMessage)) + } } private func startConnection() async { @@ -230,8 +236,15 @@ struct NetworkDisconnectedView: View { do { try await self.appContext.connectNetwork() + } catch let err as SDLAPIError { + self.showAlert = true + self.errorMessage = err.message + } catch let err as AppContextError { + self.showAlert = true + self.errorMessage = err.message } catch let err { - print("Connection error: \(err)") + self.showAlert = true + self.errorMessage = err.localizedDescription } }