Visual_Novel_iOS/crush/Crush/AppDelegate.swift

87 lines
3.2 KiB
Swift
Raw Normal View History

2025-10-09 10:29:35 +00:00
//
// AppDelegate.swift
// Crush
//
// Created by lyu dong on 2025/7/8.
//
import UIKit
import URLNavigator
import AWSS3
import AWSMobileClient
//let navigator = Navigator()
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
var appInitial: AppLaunchInitial = AppLaunchInitial()
// private var navigator: NavigatorProtocol?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
// NavigationMap.initialize(navigator: navigator)
appInitial.setupCommon()
// Window Set is in SceneDelegate.swift
// DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
// navigator.open("crushlevel://aichat/443040313704449")
// }
return true
}
// MARK: UISceneSession Lifecycle
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
// Called when a new scene session is being created.
// Use this method to select a configuration to create the new scene with.
return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
}
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
// Called when the user discards a scene session.
// If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions.
// Use this method to release any resources that were specific to the discarded scenes, as they will not return.
}
func application(_ application: UIApplication,
handleEventsForBackgroundURLSession identifier: String,
completionHandler: @escaping () -> Void){
AWSMobileClient.default().initialize { (userState, error) in
guard error == nil else {
dlog("❌Error initializing AWSMobileClient. Error: \(error!.localizedDescription)")
return
}
dlog("✅AWSMobileClient initialized.")
}
//provide the completionHandler to the TransferUtility to support background transfers.
AWSS3TransferUtility.interceptApplication(application,
handleEventsForBackgroundURLSession: identifier,
completionHandler: completionHandler)
}
func application(
_ app: UIApplication,
open url: URL,
options: [UIApplication.OpenURLOptionsKey: Any] = [:]
) -> Bool {
// // Try presenting the URL first
// if navigator.present(url, wrap: UINavigationController.self) != nil {
// print("[Navigator] present: \(url)")
// return true
// }
// // Try opening the URL
// if navigator.open(url) == true {
// print("[Navigator] open: \(url)")
// return true
// }
return false
}
}