当我们按下主页按钮并在使用其他应用程序 return 返回该应用程序后,将在 AppDelegate 中触发哪个方法

Which method would get triggered in AppDelegate when we press the home button and after using some other application return back to that application

这是我关于堆栈溢出的第一个问题,请耐心等待。
我正在使用 WKWebView 制作单视图应用程序。它使用 url
简单地加载网络应用程序 我在做什么,我想要什么,我已经在下面解释了一切
Xcode版本:11.7
iOS版本:13.7
这是 ViewController 中的 Outlet

@IBOutlet var webView: WKWebView!

webView 通过调用 viewDidLoad() 中的以下函数获取负载。

func loadMoma() {

    if let safeUrl = URL(string: url) {
        let request = URLRequest(url: safeUrl)
        webView.load(request)
    }
}

这是我的 viewDidLoad()

override func viewDidLoad() {
    super.viewDidLoad()
    
    check = ConnectivityCheck.Connection()
    
    if check {
        loadMoma()
    }

}
    

此处 ConnectivityCheck.Connection() returns 如果可以访问互联网则为真,如果没有则为假。
使用此检查 loadMoma() 被调用。
如果没有连接,什么也不会发生,在 viewDidAppear() 方法中,会调用 Alert 函数,这里是代码。

override func viewDidAppear(_ animated: Bool) {
    if !check {
        self.Alert(Message: "Connection error!, please enable the Internet.")
    }
}

Alert() 方法的定义:-

func Alert (Message: String){
    
     let alert = UIAlertController(title: "No Connectivity.", message: Message, preferredStyle: .alert)
           
           let action = UIAlertAction(title: "Go to settings", style: .default) { (action) in
               
                if let settingsUrl = URL.init(string: UIApplication.openSettingsURLString), UIApplication.shared.canOpenURL(settingsUrl) {
                    UIApplication.shared.openURL(settingsUrl)
                }
               
           }
           
           
           alert.addAction(action)
           
           present(alert, animated: true, completion: nil)
    
}

这会导致警报和一个按钮导航到 iPhone 的设置以启用互联网。 Output of Alert method

我想要什么

当用户 returns 从设置到应用程序时,在 AppDelegate 中,应该调用 loadMoma() 方法。
为此,我在 class AppDelegate 中创建了一个 ViewController 的实例,如下所示:-

var vc = ViewController()

我在 applicationWillEnterForeground 中调用 loadMoma 是这样的:-

func applicationWillEnterForeground(_ application: UIApplication) {
    print("applicationWillEnterForeground")
    if !flag {
        vc.loadMoma()
    }
}

其中 flagcheck 相同。
但问题是,当我按下主页按钮或在 运行 app.

时导航到设置时,甚至打印都没有被触发

请告诉我应该将 vc.loadMoma() 放在 AppDelegate 的什么位置才能获得我上面描述的功能。

提前致谢

由于您使用的是 iOS 13.7 版和 Xcode 11.7 版,您应该必须使用场景委托生命周期方法来完成您的要求。

每当用户从其他应用程序返回到您的应用程序时,SceneDelegate 的 sceneWillEnterForeground 和 sceneDidBecomeActive 方法将被触发。因此,您可以将用于检查互联网连接并调用 loadMoma() 方法的代码放在 sceneWillEnterForeground 方法中。

#HappyCoding

尝试将您想要在应用程序打开时执行的代码放在 applicationDidBecomeActive 中,并将您想要的代码放在 运行 退出时,在 applicationDidEnterBackground 中,在 App Delegate 中。