1、创建Swift UI选项,选择SwiftUI App
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
@Environment(\.colorScheme) var colorScheme: ColorScheme
if colorScheme == .dark {
DarkContent()
} else {
LightContent()
}
Environment可理解为用来做全局状态管理的关键字,如果值发生变化,SwiftUI 会更新视图中依赖于该值的任何部分。例如,如果用户更改了外观设置,则在上面的示例中可能会发生这种情况。
您可以使用此属性包装器读取(但不能设置)环境值。 SwiftUI 会根据系统设置自动更新一些环境值,并为其他人提供合理的默认值。您可以使用 environment(::) 视图修饰符覆盖其中的一些,以及设置您定义的自定义环境值。