这是我的代码,解释如下:
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)
}
}
点击超链接webViewDidStartLoad
时会调用。
当有互联网连接时,它会打印Internet connection: OK
。
如果没有互联网连接,则应打印Internet connection: FAILED
并打开file.html
。
但是当打开本地文件时,它会再次调用整个函数,并且一次又一次......就像一个永无止境的循环。
我想在WebView中单击(超级)链接时检查Internet连接。如果没有互联网连接,则应在此WebView中加载本地文件,而无需再次调用该函数。
我该如何解决?有人有想法吗?
答案 0 :(得分:1)
当您加载本地页面以跳过递归例程时,只需竖起一个标志。
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
}
}
}