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.

89 lines
2.2 KiB

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