123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- //
- // CompositionRoot.swift
- // JSJP_Student_sw
- //
- // Created by ningye on 2023/5/22.
- //
- import UIKit
- import CGFloatLiteral
- import Kingfisher
- import RxGesture
- import RxOptional
- import RxViewController
- import SnapKit
- import SwiftyColor
- import SwiftyImage
- import SwiftyUserDefaults
- import Then
- import URLNavigator
- import NSObject_Rx
- import ManualLayout
- import GDPerformanceView_Swift
- import Toaster
- import Dollar
- import WebKit
- import SwiftDate
- struct NYAppDependency {
- typealias OpenURLHandler = (_ url: URL, _ options: [UIApplication.OpenURLOptionsKey: Any]) -> Bool
-
- let window: UIWindow
- let configureSDKs: () -> Void
- let configureAppearance: () -> Void
- let configureUserAgent: () -> Void
- let congigurePerformance: () -> Void
- let openURL: OpenURLHandler
- }
- let navigator = Navigator()
- final class CompositionRoot {
-
- /// Builds a dependency graph and returns an entry view controller.
- static func resolve() -> NYAppDependency {
- let window = UIWindow(frame: UIScreen.main.bounds)
- window.backgroundColor = .white
- window.makeKeyAndVisible()
-
- URLNavigationMap.initialize(navigator: navigator)
- // let homeService = HomeService(networking: HomeNetworking())
- var presentMainScreen: (() -> Void)!
- presentMainScreen = {
- // let mainTabBarController = MainTabBarController(reactor: MainTabBarViewReactor(),
- // homeParentViewController: HomeParentViewController(service: homeService),
- // timekeepViewController: TimeKeepParentViewController(),
- // mineListViewController: MineParentViewController())
- // window.rootViewController = mainTabBarController
-
- //判断用户登录
- let loginController = LoginViewController(nibName: "LoginViewController")
- window.rootViewController = loginController
- }
- let splashViewController = SplashViewController(presentMainScreen: presentMainScreen)
- window.rootViewController = splashViewController
-
- return NYAppDependency(
- window: window,
- configureSDKs: self.configureSDKs,
- configureAppearance: self.configureAppearance,
- configureUserAgent: self.configureUserAgent,
- congigurePerformance: self.congigurePerformance,
- openURL: self.openURLFactory(navigator: navigator)
- )
- }
- static func configureSDKs() {
-
- }
-
- static func configureAppearance() {
- //设置时区
- let _ = Region(calendar: Calendars.gregorian, zone: Zones.asiaShanghai, locale: Locales.chinese)
- //打开app次数
- LocalManager.userInfo.openTimes += 1
- //设置环境 --默认是线上环境
- Defaults.currentEnvironment = .res
- //ToastView
- ToastView.appearance().font = NYFont.SysFont.sys_15
- // ToastView.appearance().textColor = UIColor.db_white
-
- }
-
- static func configureUserAgent() {
-
- // let webView = WKWebView(frame: .zero)
- // webView.evaluateJavaScript("navigator.userAgent") { (oldAgent, error) in
- //
- // guard let oldAgent = oldAgent as? String else { return }
- //
- // let newAgent = "\(oldAgent) BiliApp/StudioApp/6560"
- // let newAgentDic = ["UserAgent":newAgent]
- // UserDefaults.standard.register(defaults: newAgentDic)
- // if #available(iOS 9.0, *) {
- // //局部更新,即可以在其他用到的webView页面重新修改userAgent
- // webView.customUserAgent = newAgent
- // }
- // }
- // webView.load(URLRequest(url: URL(string:"http//www.baidu.com")!))
- }
-
- static func congigurePerformance() {
-
- //#if DEBUG
- // PerformanceMonitor.sharedInstance.startMonitoring()
- // PerformanceMonitor.sharedInstance.appVersionHidden = true
- // PerformanceMonitor.sharedInstance.deviceVersionHidden = true
- //#endif
- }
-
- static func openURLFactory(navigator: NavigatorType) -> NYAppDependency.OpenURLHandler {
- return { url, options -> Bool in
- if navigator.open(url) {
- return true
- }
- if navigator.present(url, wrap: MainNavigationController.self) != nil {
- return true
- }
- return false
- }
- }
- }
|