| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- //
- // LoginViewController.swift
- // O2Platform
- //
- // Created by 刘振兴 on 16/6/28.
- // Copyright © 2016年 zoneland. All rights reserved.
- //
- import UIKit
- import AlamofireObjectMapper
- import Alamofire
- import SwiftyTimer
- import SwiftyJSON
- import ObjectMapper
- import CocoaLumberjack
- import Promises
- import O2OA_Auth_SDK
- class LoginViewController: UIViewController {
-
- @IBOutlet weak var iconImageView: UIImageView!
- @IBOutlet weak var startImage: UIImageView!
-
- var viewModel:OOLoginViewModel = {
- return OOLoginViewModel()
- }()
-
- override var preferredStatusBarStyle: UIStatusBarStyle {
- return UIStatusBarStyle.default
- }
-
- override func viewDidLoad() {
- super.viewDidLoad()
-
- //load image
- let launchImage = OOCustomImageManager.default.loadImage(.launch_logo)
- iconImageView.image = launchImage
- iconImageView.isHidden = false
-
-
- switch PROJECTMODE {
- case 1:
- self.startImage.image = UIImage(named: "startImage_szslb")
- case 2:
- self.startImage.image = UIImage(named: "startImage_hzcgw")
- case 3:
- self.startImage.image = UIImage(named: "startImage_hljdx")
- default:
- self.startImage.image = UIImage(named: "startImage")
- }
- }
-
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- NotificationCenter.default.addObserver(self, selector: #selector(receiveBindCompleted(customNotification:)), name: OONotification.bindCompleted.notificationName, object: nil)
- }
-
- override func viewDidAppear(_ animated: Bool) {
- super.viewDidAppear(animated)
-
- if AppConfigSettings.shared.isFirstTime == true {
- O2Logger.info("启动开始 isFirstTime is true")
- AppConfigSettings.shared.isFirstTime = false
- let pVC = OOGuidePageController(nibName: "OOGuidePageController", bundle: nil)
- //let navVC = ZLNavigationController(rootViewController: pVC)
- self.presentVC(pVC)
- }else{
- O2Logger.info("启动开始 isFirstTime is false")
- self.startFlowForPromise()
- }
- }
- func startFlowForPromise() {
-
- if !O2IsConnect2Collect {
- let unit = O2BindUnitModel()
- if let infoPath = Bundle.main.path(forResource: "Info", ofType: "plist"), let dic = NSDictionary(contentsOfFile: infoPath) {
- let o2Server = dic["o2 server"] as? NSDictionary
- let id = o2Server?["id"] as? String
- let name = o2Server?["name"] as? String
- let centerHost = o2Server?["centerHost"] as? String
- let centerContext = o2Server?["centerContext"] as? String
- let centerPort = o2Server?["centerPort"] as? Int
- let httpProtocol = o2Server?["httpProtocol"] as? String
- O2Logger.debug("连接服务器:\(String(describing: name)) , host:\(String(describing: centerHost)) , context:\(String(describing: centerContext)), port:\(centerPort ?? 0), portocal:\(String(describing: httpProtocol)) ")
- if name == nil || centerHost == nil || centerContext == nil {
- self.showError(title: "服务器配置信息异常!")
- return
- }
- unit.id = id
- unit.centerContext = centerContext
- unit.centerHost = centerHost
- unit.centerPort = centerPort
- unit.httpProtocol = httpProtocol
- unit.name = name
- }else {
- self.showError(title: "没有配置服务器信息!")
- return
- }
-
- O2AuthSDK.shared.launchInner(unit: unit) { (state, msg) in
- switch state {
- case .bindError:
- //校验绑定结点信息错误
- self.showError(title: "未知错误!")
- break
- case .loginError:
- self.forwardToSegue("loginSystemSegue")
- //自动登录出错
- break
- case .unknownError:
- self.showError(title: msg ?? "未知错误!")
- break
- case .success:
- //处理移动端应用
- self.viewModel._saveAppConfigToDb()
- //跳转到主页
- let destVC = OOTabBarController.genernateVC()
- destVC.selectedIndex = 2 // 首页选中 TODO 图标不亮。。。。。
- UIApplication.shared.keyWindow?.rootViewController = destVC
- UIApplication.shared.keyWindow?.makeKeyAndVisible()
- }
- }
- }else {
- //本地 -> 校验 -> 下载NodeAPI -> 下载configInfo -> 自动登录
- O2AuthSDK.shared.launch { (state, msg) in
- switch state {
- case .bindError:
- //校验绑定结点信息错误
- self.forwardToSegue("bindPhoneSegue")
- break
- case .loginError:
- self.forwardToSegue("loginSystemSegue")
- //自动登录出错
- break
- case .unknownError:
- self.showError(title: msg ?? "未知错误!")
- break
- case .success:
- //处理移动端应用
- self.viewModel._saveAppConfigToDb()
- //跳转到主页
- let destVC = OOTabBarController.genernateVC()
- destVC.selectedIndex = 2 // 首页选中 TODO 图标不亮。。。。。
- UIApplication.shared.keyWindow?.rootViewController = destVC
- UIApplication.shared.keyWindow?.makeKeyAndVisible()
- }
- }
- }
-
- }
-
-
- // MARK:- 到不同的segue
- func forwardToSegue(_ segueIdentitifer:String){
- DispatchQueue.main.async {
- self.performSegue(withIdentifier: segueIdentitifer, sender: nil)
- }
- }
-
- @objc func receiveBindCompleted(customNotification:Notification){
- self.startFlowForPromise()
- }
-
- @IBAction func unBindComplete(_ sender: UIStoryboardSegue){
- //绑定完成,执行
- self.startFlowForPromise()
- }
-
- @IBAction func show(_ sender: UITapGestureRecognizer) {
- //ProgressHUD.show("系统加截中,请稍候...", interaction: true)
- }
-
- //登录后返回执行此方法
-
- override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
-
- }
-
- deinit {
- NotificationCenter.default.removeObserver(self)
- }
-
- }
|