ScanViewController.swift 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. //
  2. // ScanViewController.swift
  3. // O2Platform
  4. //
  5. // Created by 刘振兴 on 2016/12/12.
  6. // Copyright © 2016年 zoneland. All rights reserved.
  7. //
  8. import UIKit
  9. import Alamofire
  10. import AlamofireImage
  11. import AlamofireObjectMapper
  12. import ObjectMapper
  13. import CocoaLumberjack
  14. import O2OA_Auth_SDK
  15. class ScanViewController: UIViewController {
  16. var scanView:LXDScanView!
  17. override func viewWillAppear(_ animated: Bool) {
  18. self.hidesBottomBarWhenPushed = true
  19. }
  20. override func viewDidDisappear(_ animated: Bool) {
  21. super.viewDidDisappear(animated)
  22. self.scanView.stop()
  23. }
  24. override func viewDidLoad() {
  25. super.viewDidLoad()
  26. self.scanView = LXDScanView(showIn: self)
  27. self.view.addSubview(scanView)
  28. self.scanView.start()
  29. // Do any additional setup after loading the view.
  30. }
  31. override func didReceiveMemoryWarning() {
  32. super.didReceiveMemoryWarning()
  33. // Dispose of any resources that can be recreated.
  34. }
  35. /*
  36. // MARK: - Navigation
  37. // In a storyboard-based application, you will often want to do a little preparation before navigation
  38. override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
  39. // Get the new view controller using segue.destinationViewController.
  40. // Pass the selected object to the new view controller.
  41. }
  42. */
  43. }
  44. extension ScanViewController:LXDScanViewDelegate{
  45. func scanView(_ scanView: LXDScanView!, codeInfo: String!) {
  46. DDLogDebug(codeInfo)
  47. let url = NSURL(string: codeInfo)
  48. if let meta = url?.query {
  49. let metaString = meta.split("=")[1]
  50. let account = O2AuthSDK.shared.myInfo()
  51. let loginURL = AppDelegate.o2Collect.generateURLWithAppContextKey(LoginContext.loginContextKey, query: LoginContext.scanCodeAuthActionQuery, parameter: ["##meta##":metaString as AnyObject])
  52. Alamofire.request(loginURL!, method: .post, parameters: nil, encoding: JSONEncoding.default, headers: ["x-token":(account?.token)!]).responseJSON(completionHandler: { (response) in
  53. switch response.result {
  54. case .success(let val):
  55. DispatchQueue.main.async {
  56. DDLogDebug(String(describing: val))
  57. let alertController = UIAlertController(title: "扫描结果", message: "PC端登录成功", preferredStyle: .alert)
  58. let okAction = UIAlertAction(title: "确定", style: .default) {
  59. action in
  60. self.popVC()
  61. }
  62. alertController.addAction(okAction)
  63. self.presentVC(alertController)
  64. }
  65. case .failure(let err):
  66. DispatchQueue.main.async {
  67. DDLogError(err.localizedDescription)
  68. let alertController = UIAlertController(title: "扫描结果", message: "PC端登录失败", preferredStyle: .alert)
  69. let okAction = UIAlertAction(title: "确定", style: .destructive) {
  70. action in
  71. self.popVC()
  72. }
  73. alertController.addAction(okAction)
  74. self.presentVC(alertController)
  75. }
  76. }
  77. })
  78. }else{
  79. let alertController = UIAlertController(title: "扫描结果", message: codeInfo, preferredStyle: .alert)
  80. let okAction = UIAlertAction(title: "确定", style: .default) {
  81. action in
  82. self.popVC()
  83. }
  84. alertController.addAction(okAction)
  85. self.presentVC(alertController)
  86. }
  87. }
  88. }