【问题标题】:Check if link pressed in UIWebView检查是否在 UIWebView 中按下了链接
【发布时间】:2015-09-29 13:53:57
【问题描述】:

我有一个UIWebView,它的 URL 设置如下:

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 更改时检查它。

【问题讨论】:

    标签: swift url uiwebview nsurl


    【解决方案1】:

    您可以通过自定义函数检查 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)
    }
    

    它将返回真或假。那是布尔

    例如:

    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

    【讨论】:

    • 我应该在哪里调用该函数?我总是习惯通过 IBAction 等调用函数,所以这对我来说有点新:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 2012-06-26
    • 1970-01-01
    相关资源
    最近更新 更多