SceneDelegate.swift 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. //
  2. // SceneDelegate.swift
  3. // VenusKitto
  4. //
  5. // Created by Neoa on 2025/8/21.
  6. //
  7. import UIKit
  8. class SceneDelegate: UIResponder, UIWindowSceneDelegate {
  9. var window: UIWindow?
  10. func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
  11. // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
  12. // If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
  13. // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
  14. guard let windowScene = (scene as? UIWindowScene) else { return }
  15. window = UIWindow(windowScene: windowScene)
  16. // 显示开屏广告
  17. showSplashAd()
  18. window?.makeKeyAndVisible()
  19. }
  20. // MARK: - 开屏广告相关方法
  21. private func showSplashAd() {
  22. let splashVC = SplashAdViewController(useFootLogoView: false)
  23. // 设置广告结束后的回调
  24. splashVC.onSplashAdFinished = { [weak self] in
  25. self?.navigateToMainInterface()
  26. }
  27. // 设置开屏广告为根视图控制器
  28. window?.rootViewController = splashVC
  29. }
  30. private func navigateToMainInterface() {
  31. // let isLogggedIn = UserDefaults.standard.bool(forKey: "isLogggedIn")
  32. //
  33. // UIView.transition(with: window!, duration: 0.3, options: .transitionCrossDissolve, animations: {
  34. // if isLogggedIn {
  35. // 用户已登录,显示主界面
  36. let mainVC = HomeViewController()
  37. self.window?.rootViewController = UINavigationController(rootViewController: mainVC)
  38. // } else {
  39. // // 用户未登录,显示登录界面
  40. // let loginVC = LoginViewController()
  41. // self.window?.rootViewController = UINavigationController(rootViewController: loginVC)
  42. // }
  43. // }, completion: nil)
  44. }
  45. func sceneDidDisconnect(_ scene: UIScene) {
  46. // Called as the scene is being released by the system.
  47. // This occurs shortly after the scene enters the background, or when its session is discarded.
  48. // Release any resources associated with this scene that can be re-created the next time the scene connects.
  49. // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead).
  50. }
  51. func sceneDidBecomeActive(_ scene: UIScene) {
  52. // Called when the scene has moved from an inactive state to an active state.
  53. // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
  54. }
  55. func sceneWillResignActive(_ scene: UIScene) {
  56. // Called when the scene will move from an active state to an inactive state.
  57. // This may occur due to temporary interruptions (ex. an incoming phone call).
  58. }
  59. func sceneWillEnterForeground(_ scene: UIScene) {
  60. // Called as the scene transitions from the background to the foreground.
  61. // Use this method to undo the changes made on entering the background.
  62. }
  63. func sceneDidEnterBackground(_ scene: UIScene) {
  64. // Called as the scene transitions from the foreground to the background.
  65. // Use this method to save data, release shared resources, and store enough scene-specific state information
  66. // to restore the scene back to its current state.
  67. }
  68. }