AppDelegate+Window.swift 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. //
  2. // AppDelegate+Window.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2018/6/30.
  6. // Copyright © 2018年 南鑫林. All rights reserved.
  7. //
  8. import UIKit
  9. import SwiftyMediator
  10. import Kingfisher
  11. extension AppDelegate {
  12. func initWindow(didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) {
  13. window = UIWindow.init(frame: UIScreen.main.bounds)
  14. window?.backgroundColor = UIColor.white
  15. window?.makeKeyAndVisible()
  16. // if #available(iOS 13.0, *) {
  17. // window?.overrideUserInterfaceStyle = .light
  18. // }
  19. // 设置Tabbar
  20. kAppDelegate.setTabbarController()
  21. // 引导页
  22. kAppDelegate.setGuidePageView()
  23. // 授权处理
  24. setPermission()
  25. // 初始化百度地图
  26. BaiduMapManager.shared.initBaiduMap()
  27. // 百度开始定位
  28. BaiduMapManager.shared.startLocation()
  29. //友盟
  30. UMManager.shared.initUM(launchOptions: launchOptions)
  31. // 融云
  32. RongCloudIMManager.shared.initRCIM()
  33. // 设置全局的tabbar
  34. setTabbarAppearence()
  35. // 设置全局的navigation
  36. setNavBarAppearence()
  37. // 设置全局的TableView
  38. setTableViewAppearance()
  39. // 键盘处理
  40. IQKeyboardManagerSwiftManager.shared().initIQKeyboardManagerSwift()
  41. // 升级版本
  42. UpdateVersionManager.shared.initUpdateVersionManager()
  43. }
  44. /// 设置Tabbar
  45. func setTabbarController() {
  46. /// 判断初始化页面
  47. if (UserModel.shared().getModel()?.token) != nil { //是否已经登录
  48. if(UserModel.shared().getModel()?.isFollowSuggestTopic == 0 || UserModel.shared().getModel()?.isFollowSuggestTopic == nil ) {//设置性别话题
  49. setNoLoginOut()
  50. }else {
  51. window?.rootViewController = BaseTabbarViewController.shared.tabBarViewController()
  52. setData()
  53. }
  54. }else {// 进入首页
  55. setNoLoginOut()
  56. }
  57. }
  58. /// 设置登录时用的数据
  59. func setData() {
  60. // 配置
  61. SwiftMoyaNetWorkServiceConfig.shared().configApi(completion: {_ -> (Void) in }) { _ in }
  62. // // 判断初始化页面
  63. // if UserModel.shared().getModel()?.token != nil { //是否已经登录
  64. // // 刷新token
  65. // SwiftMoyaNetWorkServiceUser.shared().userRefreshApi { _ in}
  66. // }
  67. //U米
  68. UserMemberTotalBeanViewModel.shared.userMemberGetTotalBeanApiInterval()
  69. //获取消息的小红点
  70. MessageModuleManager.shared.userMemberMessageIndexApi()
  71. }
  72. /// 未登录
  73. func setNoLoginOut() {
  74. // 移除本地用户信息
  75. UserModel.shared().removeLoginModel()
  76. // 移除快递信息
  77. DeliveryMethodTypeModel.shared().removeLoginModel()
  78. // 设置tabBar
  79. self.window?.rootViewController = BaseTabbarViewController.shared.tabBarViewController()
  80. //添加登录view
  81. LoginNowView.initLoginNowView()
  82. }
  83. /// 退出登录
  84. func setLoginOut() {
  85. // 移除本地用户信息
  86. UserModel.shared().removeLoginModel()
  87. // 移除快递信息
  88. DeliveryMethodTypeModel.shared().removeLoginModel()
  89. // 选择中index
  90. BaseTabbarViewController.shared.setBadge()
  91. //添加登录view
  92. LoginNowView.initLoginNowView()
  93. // 退出登录
  94. NotificationCenter.default.post(name: NSNotification.Name("loginOut"), object: nil)
  95. BaseTabbarViewController.shared.setLoginOutTabBarItem()
  96. }
  97. /// 登录
  98. func setLogin() {
  99. Mediator.present(RegisterLoginRouterModuleType.presentRegisterLogin)
  100. }
  101. /// 设置全局的navigation
  102. func setNavBarAppearence() {
  103. WRNavigationBar.defaultStatusBarStyle = .default
  104. }
  105. ///设置全局的Tabbar
  106. func setTabbarAppearence() {
  107. UITabBar.appearance().isTranslucent = false
  108. UITabBar.appearance().backgroundImage = UIImage();
  109. UITabBar.appearance().backgroundColor = UIColor.white
  110. UITabBar.appearance().shadowImage = UIImage(named: "tab_top_line")
  111. }
  112. /// UITableView全局
  113. func setTableViewAppearance() {
  114. UITableView.appearance().estimatedRowHeight = 0
  115. UITableView.appearance().estimatedSectionHeaderHeight = 0
  116. UITableView.appearance().estimatedSectionFooterHeight = 0
  117. }
  118. ///设置百度city转
  119. func setBaiduToCityFactory() {
  120. BaiduToCityFactory.shared.setSaveBaiduToCity()
  121. }
  122. //设置引导页
  123. func setGuidePageView() {
  124. GuidePageView.guidePageView(images: ["guide_1","guide_2","guide_3","guide_4"])
  125. }
  126. /// 授权
  127. func setPermission() {
  128. NXLPermission.request(NXLPermissionType.locationAlwaysAndWhenInUse) {}
  129. NXLPermission.request(NXLPermissionType.notification) {}
  130. NXLPermission.request(NXLPermissionType.photoLibrary) {}
  131. NXLPermission.request(NXLPermissionType.camera) {}
  132. NXLPermission.request(NXLPermissionType.microphone) {}
  133. }
  134. }