检查 link 是否在 UIWebView 中按下
Check if link pressed in UIWebView
我有一个 UIWebView
是这样设置 URL 的:
let url = NSURL (string: "http://google.com");
let requestObj = NSURLRequest(URL: url!);
webView.loadRequest(requestObj);
但是我希望能够检查用户是否按下了 link。
我试过这样简单的方法:
if (url != "http://google.com") {
println("Do Stuff");
}
效果很好,但是这只会在 viewDidLoad
中检查它,我现在想在每次按下 link 或 URL 更改时检查它。
您可以通过创建自定义函数来检查 URL
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)
}
它会 return 真或假。即布尔
例如:
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");
}
}
来源:
我有一个 UIWebView
是这样设置 URL 的:
let url = NSURL (string: "http://google.com");
let requestObj = NSURLRequest(URL: url!);
webView.loadRequest(requestObj);
但是我希望能够检查用户是否按下了 link。
我试过这样简单的方法:
if (url != "http://google.com") {
println("Do Stuff");
}
效果很好,但是这只会在 viewDidLoad
中检查它,我现在想在每次按下 link 或 URL 更改时检查它。
您可以通过创建自定义函数来检查 URL
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)
}
它会 return 真或假。即布尔
例如:
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");
}
}
来源: