MailViewController.swift 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. //
  2. // MailViewController.swift
  3. // O2Platform
  4. //
  5. // Created by 林玲 on 2017/10/20.
  6. // Copyright © 2017年 zoneland. All rights reserved.
  7. //
  8. import UIKit
  9. import WebKit
  10. import Alamofire
  11. import AlamofireObjectMapper
  12. import SwiftyJSON
  13. import ObjectMapper
  14. import CocoaLumberjack
  15. class MailViewController: BaseWebViewUIViewController {
  16. static var app:O2App?
  17. static var isIndexShow:Bool?
  18. override func viewDidLoad() {
  19. super.viewDidLoad()
  20. //监听清除缓存之后需要重载
  21. NotificationCenter.default.addObserver(self, selector: #selector(loadDetailSubject), name: Notification.Name("reloadPortal"), object: nil)
  22. if MailViewController.isIndexShow ?? false {
  23. self.navigationItem.leftBarButtonItems = []
  24. }else {
  25. // self.navigationController?.title = MailViewController.app!.title!
  26. self.title = MailViewController.app!.title!
  27. let closeBtn = UIButton(frame: CGRect(x: 0, y: 0, w: 30, h: 30))
  28. closeBtn.setImage(UIImage(named: "icon_off_white2"), for: .normal)
  29. closeBtn.addTapGesture { (tap) in
  30. self.navigationController?.dismiss(animated: true, completion: nil)
  31. }
  32. let closeItem = UIBarButtonItem(customView: closeBtn)
  33. let backBtn = UIButton(frame: CGRect(x: 0, y: 0, w: 30, h: 30))
  34. backBtn.setImage(UIImage(named: "icon_fanhui"), for: .normal)
  35. backBtn.addTapGesture { (tap) in
  36. self.goBack(isBackBtn: true)
  37. }
  38. let backItem = UIBarButtonItem(customView: backBtn)
  39. self.navigationItem.leftBarButtonItems = [backItem, closeItem]
  40. }
  41. self.theWebView()
  42. }
  43. override func viewWillAppear(_ animated: Bool) {
  44. if MailViewController.isIndexShow ?? false {
  45. let statusBarWindow : UIView = UIApplication.shared.value(forKey: "statusBarWindow") as! UIView
  46. let statusBar : UIView = statusBarWindow.value(forKey: "statusBar") as! UIView
  47. if statusBar.responds(to:#selector(setter: UIView.backgroundColor)) {
  48. statusBar.backgroundColor = base_color
  49. }
  50. self.navigationController?.navigationBar.isHidden = true
  51. }
  52. }
  53. override func viewWillDisappear(_ animated: Bool) {
  54. self.navigationController?.navigationBar.isHidden = false
  55. }
  56. override func didReceiveMemoryWarning() {
  57. super.didReceiveMemoryWarning()
  58. // Dispose of any resources that can be recreated.
  59. }
  60. override func theWebView(){
  61. super.theWebView()
  62. self.webView.allowsBackForwardNavigationGestures = true
  63. loadDetailSubject()
  64. }
  65. @objc func loadDetailSubject(){
  66. if let req = Alamofire.request((MailViewController.app?.vcName?.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!)!).request {
  67. self.webView?.load(req)
  68. }else{
  69. MBProgressHUD_JChat.show(text: "加载出错,请重试", view: webView, 3.0)
  70. }
  71. }
  72. func goBack(isBackBtn: Bool) {
  73. if self.webView?.canGoBack ?? false {
  74. self.webView?.goBack()
  75. }else {
  76. if isBackBtn {
  77. self.navigationController?.dismiss(animated: true, completion: nil)
  78. }
  79. }
  80. }
  81. /*
  82. // MARK: - Navigation
  83. // In a storyboard-based application, you will often want to do a little preparation before navigation
  84. override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
  85. // Get the new view controller using segue.destinationViewController.
  86. // Pass the selected object to the new view controller.
  87. }
  88. */
  89. }