fix
杨锴
2024-10-09 2e91ee1387ef545ecef49230f2024b89b2f82a58
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
//
//  SceneDelegate.swift
//  XQMuse
//
//  Created by 无故事王国 on 2024/8/12.
//
 
import UIKit
import SVProgressHUD
import JQTools
import AuthenticationServices
 
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
 
                var window: UIWindow?
 
                func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
                                guard let windowScene = (scene as? UIWindowScene) else { return }
                                window = UIWindow(windowScene: windowScene)
                                window?.frame = windowScene.coordinateSpace.bounds
 
                                let tabbar = BaseTabBarVC()
                                window?.rootViewController = tabbar
                                window?.makeKeyAndVisible()
                                tabbar.selectedIndex = 0
 
 
                                SVProgressHUD.setContainerView(window)
                                SVProgressHUD.setDefaultStyle(.dark)
                                SVProgressHUD.setDefaultMaskType(.custom) //禁止交互
                                SVProgressHUD.setMinimumDismissTimeInterval(1.5)
                                SVProgressHUD.setMaximumDismissTimeInterval(30.0)
 
                                if #available(iOS 13.0, *) {
                                                window?.overrideUserInterfaceStyle = .light
                                }
 
        if let appleId = UserViewModel.getLoginInfo()?.appleId {
            //检查Apple登录,授权情况
            let provider = ASAuthorizationAppleIDProvider()
            provider.getCredentialState(forUserID: appleId) { state, error in
                guard  error == nil else {return}
                switch state {
                    case .revoked,.notFound,.transferred:
                        UserViewModel.clearToken()
                        UserViewModel.clearLoginInfo()
                        UserViewModel.clearAvatarInfo()
                    default:break
                }
            }
 
            NotificationCenter.default.rx.notification(ASAuthorizationAppleIDProvider.credentialRevokedNotification).subscribe(onNext: { _ in
                UserViewModel.clearToken()
                UserViewModel.clearLoginInfo()
                UserViewModel.clearAvatarInfo()
            }).disposed(by: JQ_disposeBag)
        }
                }
 
                func needLogin(){
                                UserViewModel.clearToken()
                                UserViewModel.clearLoginInfo()
                                UserViewModel.clearAvatarInfo()
                                
                                let loginNav = LoginNav(rootViewController: LoginVC())
                                loginNav.modalPresentationStyle = .fullScreen
                                JQ_currentViewController().present(loginNav, animated: true)
                }
                
                func loginSuccess(){
                                
                }
 
                func sceneDidDisconnect(_ scene: UIScene) {
                                // Called as the scene is being released by the system.
                                // This occurs shortly after the scene enters the background, or when its session is discarded.
                                // Release any resources associated with this scene that can be re-created the next time the scene connects.
                                // The scene may re-connect later, as its session was not necessarily discarded (see `application:didDiscardSceneSessions` instead).
                }
 
                func sceneDidBecomeActive(_ scene: UIScene) {
                                // Called when the scene has moved from an inactive state to an active state.
                                // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive.
                }
 
                func sceneWillResignActive(_ scene: UIScene) {
                                // Called when the scene will move from an active state to an inactive state.
                                // This may occur due to temporary interruptions (ex. an incoming phone call).
                }
 
                func sceneWillEnterForeground(_ scene: UIScene) {
                                // Called as the scene transitions from the background to the foreground.
                                // Use this method to undo the changes made on entering the background.
                }
 
                func sceneDidEnterBackground(_ scene: UIScene) {
                                // Called as the scene transitions from the foreground to the background.
                                // Use this method to save data, release shared resources, and store enough scene-specific state information
                                // to restore the scene back to its current state.
                }
 
 
}