如果没有互联网连接,加载本地文件;函数一次又一次地调用自己

Load local file if no internet connection; function calls itself again and again

这是我的代码,解释如下:

func webViewDidStartLoad(homewebview: UIWebView) {

    if Reachability.isConnectedToNetwork() == true {
        print("Internet connection: OK")

    } else {
        print("Internet connection: FAILED")

        let path: String = NSBundle.mainBundle().pathForResource("file", ofType: "html")!
        let url: NSURL = NSURL.fileURLWithPath(path)
        let request: NSURLRequest = NSURLRequest(URL: url)
        homewebview.loadRequest(request)
    }
}

当点击 hyperlink 时 webViewDidStartLoad 会被调用。

当有互联网连接时,它会打印 Internet connection: OK

当没有互联网连接时,它应该打印 Internet connection: FAILED 并打开 file.html

但是当打开本地文件时,它会再次调用整个函数,一次又一次……就像一个永无止境的循环。

我想在 WebView 中单击 (hyper)link 时检查互联网连接。如果没有互联网连接,本地文件应该加载到这个 WebView 中,而无需再次调用该函数。

我该如何解决?有人有想法吗?

在加载本地页面时,只需升起一个标志即可跳过递归例程。

var loadingLoacalPage = false
//..//
func webViewDidStartLoad(homewebview: UIWebView) {
        if Reachability.isConnectedToNetwork() == true {
            print("Internet connection: OK")

        } else {
            print("Internet connection: FAILED")

            let alert = UIAlertView(title: "No internet connection", message: "Check internet connection.", delegate: nil, cancelButtonTitle: "Okay")
            alert.show()

            if(!loadingLoacalPage){

            let path: String = NSBundle.mainBundle().pathForResource("file", ofType: "html")!
            let url: NSURL = NSURL.fileURLWithPath(path)
            let request: NSURLRequest = NSURLRequest(URL: url)
            homewebview.loadRequest(request)

            loadingLoacalPage = true

        }
    }
}