ReadTaskDetailViewController.swift 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. //
  2. // ReadTaskDetailViewController.swift
  3. // O2Platform
  4. //
  5. // Created by 刘振兴 on 16/8/3.
  6. // Copyright © 2016年 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 ReadTaskDetailViewController: BaseTaskWebViewController {
  16. @IBOutlet weak var progress: UIProgressView!
  17. @IBOutlet weak var toolbarView: UIToolbar!
  18. var loadUrl:String?
  19. var todoTask:TodoTask? {
  20. didSet {
  21. var url:String?
  22. if let workId = todoTask?.work {
  23. url = AppDelegate.o2Collect.genrateURLWithWebContextKey(DesktopContext.DesktopContextKey, query: DesktopContext.todoDesktopQuery, parameter: ["##workid##":workId as AnyObject])
  24. }else if let workCompletedId = todoTask?.workCompleted {
  25. url = AppDelegate.o2Collect.genrateURLWithWebContextKey(DesktopContext.DesktopContextKey, query: DesktopContext.todoedDestopQuery, parameter: ["##workCompletedId##":workCompletedId as AnyObject])
  26. }
  27. self.loadUrl = url
  28. }
  29. }
  30. override func viewDidLoad() {
  31. super.viewDidLoad()
  32. title = todoTask?.title
  33. self.theWebView()
  34. }
  35. override func didReceiveMemoryWarning() {
  36. super.didReceiveMemoryWarning()
  37. }
  38. override func viewWillAppear(_ animated: Bool) {
  39. super.viewWillAppear(animated)
  40. //监控进度
  41. self.addObserver(webView, forKeyPath: "estimatedProgress", options: .new, context: nil)
  42. }
  43. override func viewWillDisappear(_ animated: Bool) {
  44. super.viewWillDisappear(animated)
  45. self.removeObserver(webView, forKeyPath: "estimatedProgress")
  46. }
  47. override func theWebView(){
  48. super.theWebView()
  49. webView.frame = CGRect(x:0,y:0,width:view.frame.width,height:view.frame.height - 40)
  50. self.view.insertSubview(webView, belowSubview: toolbarView)
  51. webView.navigationDelegate = self
  52. webView.uiDelegate = self
  53. webView.load(Alamofire.request(loadUrl!).request!)
  54. webView.allowsBackForwardNavigationGestures = true
  55. }
  56. override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
  57. if keyPath == "estimatedPrgress" {
  58. progress.isHidden = webView.estimatedProgress == 1
  59. progress.setProgress(Float(webView.estimatedProgress), animated: true)
  60. }
  61. }
  62. @IBAction func changeDocAction(_ sender: UIBarButtonItem) {
  63. DDLogDebug("readButtonAction")
  64. let url = AppDelegate.o2Collect.generateURLWithAppContextKey(ReadContext.readContextKey, query: ReadContext.readProcessing, parameter: ["##id##":(todoTask?.id)! as AnyObject])
  65. self.showMessage(title: "提交中...")
  66. Alamofire.request(url!, method:.post, parameters: todoTask?.toJSON(), encoding: JSONEncoding.default, headers: nil).responseJSON { response in
  67. switch response.result {
  68. case .success(let val):
  69. DDLogDebug(JSON(val).description)
  70. let json = JSON(val)
  71. if json["type"]=="success"{
  72. self.showSuccess(title: "提交成功")
  73. DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.3, execute: {
  74. self.performSegue(withIdentifier: "backToReadTask", sender: nil)
  75. })
  76. }else {
  77. DDLogError(json["message"].description)
  78. self.showError(title: "提交失败")
  79. }
  80. case .failure(let err):
  81. DDLogError(err.localizedDescription)
  82. self.showError(title: "提交失败")
  83. }
  84. }
  85. }
  86. }
  87. extension ReadTaskDetailViewController:WKNavigationDelegate,WKUIDelegate {
  88. func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {
  89. DDLogDebug("didStartProvisionalNavigation")
  90. }
  91. func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
  92. DDLogDebug("didCommit")
  93. }
  94. func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
  95. DDLogDebug("didFinish")
  96. }
  97. func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
  98. DDLogDebug("didFail")
  99. DDLogError(error.localizedDescription)
  100. }
  101. }