
- 在Info.plist中新增API签名密钥配置。 - 将Splash视图替换为SplashV2,优化启动逻辑和用户体验。 - 更新API请求中的User-Agent逻辑,使用UserAgentProvider提供的动态值。 - 在APILogger中添加敏感信息脱敏处理,增强安全性。 - 新增CreateFeedPage视图,支持用户发布动态功能。 - 更新MainPage和Splash视图的导航逻辑,整合统一的AppRoute管理。 - 移除冗余的SplashFeature视图,提升代码整洁性和可维护性。
64 lines
2.4 KiB
Swift
64 lines
2.4 KiB
Swift
import SwiftUI
|
|
|
|
struct SplashV2: View {
|
|
@State private var showLogin = false
|
|
@State private var showMain = false
|
|
@State private var hasCheckedAuth = false
|
|
private let splashTransitionAnimation: Animation = .easeInOut(duration: 0.25)
|
|
|
|
var body: some View {
|
|
Group {
|
|
if showMain {
|
|
MainPage(onLogout: {
|
|
showMain = false
|
|
showLogin = true
|
|
})
|
|
} else if showLogin {
|
|
NavigationStack {
|
|
LoginPage(onLoginSuccess: {
|
|
showMain = true
|
|
})
|
|
}
|
|
} else {
|
|
ZStack {
|
|
LoginBackgroundView()
|
|
VStack(spacing: 32) {
|
|
Spacer().frame(height: 200)
|
|
Image("logo")
|
|
.resizable()
|
|
.aspectRatio(contentMode: .fit)
|
|
.frame(width: 100, height: 100)
|
|
Text(LocalizedString("splash.title", comment: "E-Parti"))
|
|
.font(.system(size: 40, weight: .regular))
|
|
.foregroundColor(.white)
|
|
Spacer()
|
|
}
|
|
}
|
|
.onAppear {
|
|
guard !hasCheckedAuth else { return }
|
|
hasCheckedAuth = true
|
|
Task { @MainActor in
|
|
debugInfoSync("🚀 SplashV2 启动,开始检查登录缓存")
|
|
let status = await UserInfoManager.checkAuthenticationStatus()
|
|
if status.canAutoLogin {
|
|
debugInfoSync("✅ 检测到可自动登录,尝试预取用户信息")
|
|
_ = await UserInfoManager.autoFetchUserInfoOnAppLaunch(apiService: LiveAPIService())
|
|
withAnimation(splashTransitionAnimation) {
|
|
showMain = true
|
|
}
|
|
} else {
|
|
debugInfoSync("🔑 未登录或缓存无效,进入登录页")
|
|
withAnimation(splashTransitionAnimation) {
|
|
showLogin = true
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.ignoresSafeArea()
|
|
}
|
|
}
|
|
|
|
|