// // AppDelegate.swift // ADHTuanCan // // Created by 敖德亨 on 2023/9/27. // import UIKit import CoreData import IQKeyboardManagerSwift import SwiftyUserDefaults //import Stripe @main class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? var viewController: UIViewController? var viewController1: UINavigationController! func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. let languanges : [String] = UserDefaults.standard.object(forKey: "AppleLanguages") as! [String] let preferredLanguage = languanges.first if Defaults[\.LanguagesStr] != nil{ }else{ Defaults[\.LanguagesStr] = preferredLanguage } UserDefaults.standard.set([Defaults[\.LanguagesStr]], forKey: "AppleLanguages") UserDefaults.standard.synchronize() IQKeyboardManager.shared.enable = true self.window = UIWindow.init(frame: UIScreen.main.bounds) self.window?.backgroundColor = UIColor.white self.window?.makeKeyAndVisible() self.window?.makeKeyAndVisible() self.window?.makeKeyAndVisible() //默认域名 // Defaults[\.BaseUrl] = "http://47.108.114.127:10888" // Defaults[\.BaseUrl] = "http://47.109.38.72:10887" // Defaults[\.BaseUrl] = "http://www.gzzzyd.com/gm-api" // Defaults[\.BaseUrl] = "http://wine.gzzzyd.com/api" // Defaults[\.BaseUrl] = "https://kcapp.kiansengculinary.com/api" // Defaults[\.BaseUrl] = "https://kcapp.gzzzyd.com/api" Defaults[\.BaseUrl] = "https://kscapp.kiansengculinary.com/api" // https://kscapp.kiansengculinary.com/api/ // Defaults[\.BaseUrl] = "https://kcapp.gzzzyd.com/api" if Defaults[\.isFirstOpen]{ self.gotoStartupPage() }else{ if Defaults[\.UserToken] != nil{ self.setHomeTabBarViewController() }else{ self.gotoLogin() } } self.registerStripePayApi() return true } //注册StripeApi func registerStripePayApi(){ // STPAPIClient.shared.publishableKey = "pk_test_51O3DvzBqBnSGwj1K0ePpneI04LzHX5e9JC0BYqLXfnEqhJJgaSdtUM7ppv3YaK0vTdJ5mUTSLoG84zIILjfsyglz00Cgl4haJ3" // STPPaymentConfiguration.shared.applePayEnabled = true // STPPaymentConfiguration.shared.appleMerchantIdentifier = "pk_test_51O3DvzBqBnSGwj1K0ePpneI04LzHX5e9JC0BYqLXfnEqhJJgaSdtUM7ppv3YaK0vTdJ5mUTSLoG84zIILjfsyglz00Cgl4haJ3" } //进入启动页 func gotoStartupPage(){ let vc = StartupPageViewController() self.window?.rootViewController = vc Defaults[\.isFirstOpen] = false } //MARK: 进入登录页 func gotoLogin(){ let vc = TCLogingViewController() let navMange = UINavigationController.init(rootViewController: vc) self.viewController = navMange self.window?.rootViewController = navMange // Defaults[\.isFirstOpen] = true // let loginVC = TCLogingViewController() // let keyWindow = UIApplication.shared.keyWindow // self.window?.rootViewController = loginVC } //MARK: 进入首页 func setHomeTabBarViewController(){ // if Defaults[\.isSetPayPassword] === 0{ // let loginVC = EditPayPSWViewController() // loginVC.phone = Defaults[\.UserPhone] // self.window?.rootViewController = loginVC // return // } let tabVC = BaseTabbarController() tabVC.setupChildControllers() self.window?.rootViewController = tabVC } // 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) { // // 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. // } // MARK: - Core Data stack lazy var persistentContainer: NSPersistentContainer = { /* The persistent container for the application. This implementation creates and returns a container, having loaded the store for the application to it. This property is optional since there are legitimate error conditions that could cause the creation of the store to fail. */ let container = NSPersistentContainer(name: "ADHTuanCan") container.loadPersistentStores(completionHandler: { (storeDescription, error) in if let error = error as NSError? { // Replace this implementation with code to handle the error appropriately. // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. /* Typical reasons for an error here include: * The parent directory does not exist, cannot be created, or disallows writing. * The persistent store is not accessible, due to permissions or data protection when the device is locked. * The device is out of space. * The store could not be migrated to the current model version. Check the error message to determine what the actual problem was. */ fatalError("Unresolved error \(error), \(error.userInfo)") } }) return container }() // MARK: - Core Data Saving support func saveContext () { let context = persistentContainer.viewContext if context.hasChanges { do { try context.save() } catch { // Replace this implementation with code to handle the error appropriately. // fatalError() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. let nserror = error as NSError fatalError("Unresolved error \(nserror), \(nserror.userInfo)") } } } }