2015-07-10 73 views
1

按下我有设定的URL这样的UIWebView检查链接的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我想现在每一个环节被按下时或当URL变化。

回答

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查询的网址。这就是布尔

例如:

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

+0

我应该在哪里呼吁功能?我总是习惯通过一个IBAction等来调用函数,所以这对我来说有点新鲜:) –