В веб-представлении, когда я просматриваю файлы, контроллер WebView закрывается после нажатия кнопки отмены на iCloud Drive. - PullRequest
0 голосов
/ 04 октября 2018

В веб-представлении, когда я нажимаю на кнопку просмотра файла, я перехожу на iCloud Drive, когда я нажимаю на кнопку отмены iCloud Drive, затем контроллер веб-представления закрывается и через некоторое время снова отображается, но вид сделалнагрузка вызывается снова я не знаю в чем проблема вот мой код

class WebViewController: UIViewController, WKNavigationDelegate,WKUIDelegate {
private var webView: WKWebView!
private var refController:UIRefreshControl = UIRefreshControl()
private var activityIndicator: UIActivityIndicatorView!
override func viewDidLoad() {
    super.viewDidLoad()
    loadUrl()
    // Do any additional setup after loading the view.
}
private  func loadUrl(){
    activityIndicator = UIActivityIndicatorView()
    activityIndicator.center = self.view.center
    activityIndicator.hidesWhenStopped = true
    activityIndicator.activityIndicatorViewStyle = UIActivityIndicatorViewStyle.gray
    let statusBarHeight = UIApplication.shared.statusBarFrame.height
    webView=WKWebView(frame: CGRect.init(x: 0, y: statusBarHeight, width: view.bounds.maxX, height: view.bounds.maxY))
    self.webView.navigationDelegate=self
    self.webView.uiDelegate=self
    self.view.addSubview(webView)
    self.view.addSubview(activityIndicator)
    refController.bounds = CGRect.init(x: 0.0, y: 50.0, width: refController.bounds.size.width, height: refController.bounds.size.height)
    refController.addTarget(self, action: #selector(self.mymethodforref(refresh:)), for: .valueChanged)
    refController.attributedTitle = NSAttributedString(string: "Pull to refresh")
    webView.scrollView.addSubview(refController)
    let value = ConfigManager.getInstance().getUrl()
    let cookie=ConfigManager.getInstance().getCookie()
    var url=URLRequest(url: URL(string: "https://helpers.ie/dashboard")!)
    url.addValue("ci_session="+cookie, forHTTPHeaderField: "Cookie")
    activityIndicator.startAnimating()
    self.webView.load(url)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
@objc func mymethodforref(refresh:UIRefreshControl){
    webView.reload()
    refController.endRefreshing()
}
func webView(_ webView: WKWebView,
             didFinish navigation: WKNavigation!) {

   activityIndicator.stopAnimating()
}
func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void){
    if (navigationAction.navigationType == WKNavigationType.linkActivated) {
        let url=navigationAction.request.url
        let str=String(describing:url!)
        if str == "https://helpers.ie/user/logout/" || str == "https://helpers.ie/signup" || str == "https://helpers.ie/login"{
            ConfigManager.getInstance().removeInfoCookie()
            let vc=AppStoryboard.RegisterScreen.viewController(viewControllerClass: LoginViewController.self)
            self.present(vc, animated: true, completion: nil)

        }
        decisionHandler(WKNavigationActionPolicy.allow)
    } else {
        let url=navigationAction.request.url
        decisionHandler(WKNavigationActionPolicy.allow)
    }
}

}

...