当我的应用程序成为前台时,我需要在事件上调用一些方法
(我对每个视图都使用ViewModel,所以我不仅可以从视图调用某物)
例如:
1.我的应用程序正在运行;
1.将前台窗口更改为Safari应用程序。
1.将前台窗口更改为我的应用程序-〉调用了某个方法。
使用.onChange(of: scenePhase) -> .active
时,此场景不会发生任何情况
所以这些代码对我来说不是解决方案:
struct ContentView: View {
@Environment(\.scenePhase) private var scenePhase
var body: some View {
TestView()
.onChange(of: scenePhase) { phase in
switch phase {
case .active:
print("App is active")
default:
break
}
}
}
}
2条答案
按热度按时间jecbmhm31#
Way 1:
(better)
You can use custom AppDelegate with function
applicationDidBecomeActive
main app file:
appDelegate file:
Way 2:
( alternative )
4ioopgfo2#
您可以使用环境变量
controlActiveState
,如下所示: