You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
2.5 KiB

  1. //
  2. // WebLinksViewController.swift
  3. // Sipradi
  4. //
  5. // Created by shishir sapkota on 7/26/17.
  6. // Copyright © 2017 Ekbana. All rights reserved.
  7. //
  8. import Foundation
  9. import UIKit
  10. import Alamofire
  11. class WebLinksViewController: UIViewController {
  12. // MARK: Properties
  13. // MARK: Outlets
  14. // @IBOutlet weak var webView: UIWebView!
  15. // @IBOutlet weak var activityIndicator: UIActivityIndicatorView!
  16. var navTitle: String = ""
  17. var url: String?
  18. var titleString: String = ""
  19. // MARK: VC's Life cycle
  20. var webView: UIWebView?
  21. var activityIndicator: UIActivityIndicatorView?
  22. override func viewDidLoad() {
  23. UIApplication.shared.statusBarStyle = .lightContent
  24. super.viewDidLoad()
  25. let barButton = UIBarButtonItem.init(title: "Close", style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.cancel))
  26. self.navigationItem.rightBarButtonItem = barButton
  27. webView = UIWebView(frame: self.view.frame)
  28. webView?.delegate = self
  29. activityIndicator = UIActivityIndicatorView(activityIndicatorStyle: UIActivityIndicatorViewStyle.gray)
  30. activityIndicator?.center = self.view.center
  31. self.view.addSubview(webView!)
  32. self.view.addSubview(activityIndicator!)
  33. }
  34. private func setupWebView() {
  35. self.webView?.delegate = self
  36. }
  37. // MARK: IBActions
  38. override func viewWillAppear(_ animated: Bool) {
  39. self.navigationItem.title = titleString
  40. self.openURLInWebView()
  41. }
  42. @objc func cancel() {
  43. self.dismiss(animated: true, completion: nil)
  44. }
  45. func openURLInWebView() {
  46. if NetworkReachabilityManager()?.isReachable == true {
  47. if let url = URL.init(string: self.url ?? "") {
  48. let request = URLRequest(url: url)
  49. webView?.loadRequest(request)
  50. }
  51. }else {
  52. self.alert(message: "Please check your internet connection", title: "")
  53. }
  54. }
  55. }
  56. // MARK: UIWebViewDelegate
  57. extension WebLinksViewController: UIWebViewDelegate {
  58. func webViewDidStartLoad(_ webView: UIWebView) {
  59. self.activityIndicator?.startAnimating()
  60. }
  61. func webViewDidFinishLoad(_ webView: UIWebView) {
  62. self.activityIndicator?.stopAnimating()
  63. }
  64. func webView(_ webView: UIWebView, didFailLoadWithError error: Error) {
  65. self.activityIndicator?.stopAnimating()
  66. self.alert(message: error.localizedDescription)
  67. }
  68. }