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.
|
|
// // WebLinksViewController.swift // // // Created by shishir sapkota //
import Foundation import UIKit import Alamofire import WebKit
class WebLinksViewController: UIViewController, WKUIDelegate { // MARK: Properties // MARK: Outlets var navTitle: String = "" var url: String? var titleString: String = "" // MARK: VC's Life cycle var webView: WKWebView? var activityIndicator: UIActivityIndicatorView? override func viewDidLoad() { super.viewDidLoad() let barButton = UIBarButtonItem.init( title: "penny_test_close_text".localized(), style: UIBarButtonItem.Style.plain, target: self, action: #selector(self.cancel) ) self.navigationItem.rightBarButtonItem = barButton webView = WKWebView(frame: self.view.frame) setupWebView() activityIndicator = UIActivityIndicatorView(style: UIActivityIndicatorView.Style.gray) activityIndicator?.center = self.view.center self.view.addSubview(webView!) self.view.addSubview(activityIndicator!) } private func setupWebView() { self.webView?.uiDelegate = self webView?.navigationDelegate = self } // MARK: IBActions override func viewWillAppear(_ animated: Bool) { self.navigationItem.title = titleString self.openURLInWebView() } @objc func cancel() { self.dismiss(animated: true, completion: nil) } func openURLInWebView() { if NetworkReachabilityManager()?.isReachable == true { if let url = URL.init(string: self.url ?? "") { let request = URLRequest(url: url) webView?.load(request) } } else { self.alert(type: .error, message: "no_internet_connection_error".localized(), title: "") } } }
// MARK: WKNavigationDelegate extension WebLinksViewController: WKNavigationDelegate { func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) { self.activityIndicator?.startAnimating() } func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { self.activityIndicator?.stopAnimating() } func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) { self.activityIndicator?.stopAnimating() self.alert(type: .error, message: error.localizedDescription) } }
|