
- 修改Package.swift以支持iOS 15和macOS 12。 - 更新swift-tca-architecture-guidelines.mdc中的alwaysApply设置为false。 - 注释掉AppDelegate中的NIMSDK导入,移除不再使用的NIMConfigurationManager和NIMSessionManager文件。 - 添加新的API相关文件,包括EMailLoginFeature、IDLoginFeature和相关视图,增强登录功能。 - 更新APIConstants和APIEndpoints以反映新的API路径。 - 添加本地化支持文件,包含英文和中文简体的本地化字符串。 - 新增字体管理和安全工具类,支持AES和DES加密。 - 更新Xcode项目配置,调整版本号和启动画面设置。
39 lines
1.1 KiB
Swift
39 lines
1.1 KiB
Swift
import Foundation
|
|
import ComposableArchitecture
|
|
|
|
@Reducer
|
|
struct SplashFeature {
|
|
@ObservableState
|
|
struct State: Equatable {
|
|
var isLoading = true
|
|
var shouldShowMainApp = false
|
|
}
|
|
|
|
enum Action: Equatable {
|
|
case onAppear
|
|
case splashFinished
|
|
}
|
|
|
|
var body: some ReducerOf<Self> {
|
|
Reduce { state, action in
|
|
switch action {
|
|
case .onAppear:
|
|
state.isLoading = true
|
|
state.shouldShowMainApp = false
|
|
|
|
// 1秒延迟后显示主应用 (iOS 15.5+ 兼容)
|
|
return .run { send in
|
|
try await Task.sleep(nanoseconds: 1_000_000_000) // 1秒 = 1,000,000,000 纳秒
|
|
await send(.splashFinished)
|
|
}
|
|
|
|
case .splashFinished:
|
|
state.isLoading = false
|
|
state.shouldShowMainApp = true
|
|
// 发送通知
|
|
NotificationCenter.default.post(name: .splashFinished, object: nil)
|
|
return .none
|
|
}
|
|
}
|
|
}
|
|
} |