2015-07-10 90 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等來調用函數,所以這對我來說有點新鮮:) –