检查UIWebView中是否按下了链接

时间:2015-07-10 17:47:05

标签: swift url uiwebview nsurl

我有一个UIWebView,其设置网址如下:

let url = NSURL (string: "http://google.com");
    let requestObj = NSURLRequest(URL: url!);
    webView.loadRequest(requestObj);

但是,我希望能够检查用户是否按下了链接。

我尝试过这样简单的事情:

if (url != "http://google.com") {
            println("Do Stuff");
        }

工作得很好,但是每次按下链接或网址发生变化时,我只想在viewDidLoad中查看它。

1 个答案:

答案 0 :(得分:0)

您可以通过制作自定义功能来检查网址

func validateUrl (stringURL : NSString) -> Bool {

    var urlRegEx = "((https|http)://)((\\w|-)+)(([.]|[/])((\\w|-)+))+"
    let predicate = NSPredicate(format:"SELF MATCHES %@", argumentArray:[urlRegEx])
    var urlTest = NSPredicate.predicateWithSubstitutionVariables(predicate)

    return predicate.evaluateWithObject(stringURL)
}

它将返回true或false。那是Bool

例如:

if (validateUrl("http://google.com")) {
    //will return true
    println("Do Stuff");
}
else
{
    //If it is false then do stuff here.
}

中调用此功能
func webView(WebViewNews: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -> Bool {
    if (validateUrl(request.URL().absoluteString())) {
        //if will return true
        println("Do Stuff");
    }
}

来源:https://stackoverflow.com/a/24207852/3202193