如果没有互联网连接,加载本地文件;函数一次又一次地调用自己
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
}
}
}
这是我的代码,解释如下:
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
}
}
}