SAccoutSecViewController.swift 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. //
  2. // SAccoutSecViewController.swift
  3. // O2Platform
  4. //
  5. // Created by 刘振兴 on 2016/10/17.
  6. // Copyright © 2016年 zoneland. All rights reserved.
  7. //
  8. import UIKit
  9. import Eureka
  10. import CocoaLumberjack
  11. import O2OA_Auth_SDK
  12. // 系统生物识别登录 updated by fancylou on 2019-3-11
  13. class SAccoutSecViewController: FormViewController {
  14. var bioType = O2BiometryType.None
  15. var typeTitle = "生物识别登录"
  16. override func viewDidLoad() {
  17. super.viewDidLoad()
  18. let bioAuthUser = AppConfigSettings.shared.bioAuthUser
  19. DDLogDebug("bio user: \(bioAuthUser)")
  20. bioType = O2BioLocalAuth.shared.checkBiometryType()
  21. switch bioType {
  22. case O2BiometryType.FaceID:
  23. typeTitle = "人脸识别登录"
  24. break
  25. case O2BiometryType.TouchID:
  26. typeTitle = "指纹识别登录"
  27. break
  28. case O2BiometryType.None:
  29. typeTitle = "生物识别登录"
  30. break
  31. }
  32. SwitchRow.defaultCellUpdate = {
  33. cell,row in
  34. cell.textLabel?.font = setting_value_textFont
  35. cell.textLabel?.textColor = setting_value_textColor
  36. cell.detailTextLabel?.font = setting_value_textFont
  37. cell.detailTextLabel?.textColor = setting_value_textColor
  38. cell.accessoryType = .disclosureIndicator
  39. }
  40. //设置配置列
  41. form +++ Section(footer: "开启\(typeTitle)后,在登录的时候无需输入用户名密码或者短信验证码,一键验证登录,方便快捷!")
  42. <<< SwitchRow("set_none") {
  43. $0.title = typeTitle
  44. $0.value = bioAuthUser.isEmpty == false
  45. $0.cell?.switchControl?.addTarget(self, action: #selector(self.clickSwitch), for: UIControl.Event.touchUpInside)
  46. }
  47. // Do any additional setup after loading the view.
  48. }
  49. override func didReceiveMemoryWarning() {
  50. super.didReceiveMemoryWarning()
  51. // Dispose of any resources that can be recreated.
  52. }
  53. @objc private func clickSwitch() {
  54. let row = self.form.rowBy(tag: "set_none") as? SwitchRow
  55. if self.bioType != O2BiometryType.None {
  56. O2BioLocalAuth.shared.auth(reason: "开启\(typeTitle)", selfAuthTitle: "再想想", block: { (result, errorMsg) in
  57. switch result {
  58. case O2BioEvaluateResult.SUCCESS:
  59. if row?.value == true { //开启
  60. AppConfigSettings.shared.bioAuthUser = O2AuthSDK.shared.myInfo()?.id ?? ""
  61. }else { //关闭
  62. AppConfigSettings.shared.bioAuthUser = ""
  63. }
  64. break
  65. case O2BioEvaluateResult.FALLBACK:
  66. //还原value
  67. if row?.value == true {
  68. row?.value = false
  69. }else {
  70. row?.value = true
  71. }
  72. row?.updateCell()
  73. //self.showError(title: "已取消!")
  74. break
  75. case O2BioEvaluateResult.LOCKED:
  76. //还原value
  77. if row?.value == true {
  78. row?.value = false
  79. }else {
  80. row?.value = true
  81. }
  82. row?.updateCell()
  83. self.showSystemAlert(title: "提示", message: "多次错误,已被锁定,请到手机解锁界面输入密码!", okHandler: { (action) in
  84. //
  85. })
  86. break
  87. case O2BioEvaluateResult.FAILURE:
  88. //还原value
  89. if row?.value == true {
  90. row?.value = false
  91. }else {
  92. row?.value = true
  93. }
  94. row?.updateCell()
  95. DDLogError(errorMsg)
  96. self.showError(title: "验证失败!")
  97. break
  98. }
  99. })
  100. }else {
  101. self.showError(title: "手机系统未开启或不支持识别功能")
  102. }
  103. }
  104. /*
  105. // MARK: - Navigation
  106. // In a storyboard-based application, you will often want to do a little preparation before navigation
  107. override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
  108. // Get the new view controller using segue.destinationViewController.
  109. // Pass the selected object to the new view controller.
  110. }
  111. */
  112. }