87 lines
3.2 KiB
Swift
87 lines
3.2 KiB
Swift
//
|
|
// 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
|
|
}
|
|
}
|