1、創(chuàng)建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: // 不活躍狀態(tài)
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可理解為用來做全局狀態(tài)管理的關(guān)鍵字,如果值發(fā)生變化料身,SwiftUI 會更新視圖中依賴于該值的任何部分汤纸。例如,如果用戶更改了外觀設(shè)置芹血,則在上面的示例中可能會發(fā)生這種情況贮泞。
您可以使用此屬性包裝器讀取(但不能設(shè)置)環(huán)境值。 SwiftUI 會根據(jù)系統(tǒng)設(shè)置自動更新一些環(huán)境值,并為其他人提供合理的默認值。您可以使用 environment(::) 視圖修飾符覆蓋其中的一些,以及設(shè)置您定義的自定義環(huán)境值嗡载。