SwiftUI App入口生命周期管理方式(Life Cycle)

1、创建Swift UI选项,选择SwiftUI App
截屏2021-12-19 17.22.47.png
2、进入 App@main入口
iimport SwiftUI

@main
struct TestApp: App {

    @Environment(\.scenePhase) var scenePhase
    
    var body: some Scene {
        WindowGroup {
            // URL Scheme 打开URL
            ContentView().onOpenURL(perform: { url in
                print(url.absoluteString)
            })
        }.onChange(of: scenePhase) { newScenePhase in
            switch newScenePhase{
            case .active: // 进入前台
                print("active")
            case .background: // 进入后台
                print("background")
            case .inactive: // 不活跃状态
                print("inactive")
            default:
                print("default")
            }
        }
    }
}


3、Environment
截屏2021-12-19 17.33.41.png
@Environment(\.colorScheme) var colorScheme: ColorScheme

if colorScheme == .dark { 
    DarkContent()
} else {
    LightContent()
}

Environment可理解为用来做全局状态管理的关键字,如果值发生变化,SwiftUI 会更新视图中依赖于该值的任何部分。例如,如果用户更改了外观设置,则在上面的示例中可能会发生这种情况。
您可以使用此属性包装器读取(但不能设置)环境值。 SwiftUI 会根据系统设置自动更新一些环境值,并为其他人提供合理的默认值。您可以使用 environment(::) 视图修饰符覆盖其中的一些,以及设置您定义的自定义环境值。

你可能感兴趣的:(SwiftUI App入口生命周期管理方式(Life Cycle))