繁体   English   中英

如何在Safari中使用UIWebView打开除了一些链接之外的所有链接?

[英]How to open all links, besides some, in Safari with UIWebView?

我从这里获得以下代码以打开与Safari中的域名不匹配的所有其他链接:

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    if navigationType == UIWebViewNavigationType.LinkClicked {
        UIApplication.sharedApplication().openURL(request.URL!)
        return false
    }
    return true
}

虽然我如何允许在我的UIWebView而不是Safari中打开另一个指定的域,例如paypal.com

您可以存储允许的URL列表,并过滤请求URL的主机名。 如果主机与其中一个允许的URL匹配,则返回true以允许在Web视图中加载URL。 否则,使用UIApplication.openURL()在Safari中打开URL。

例如:

let safeList = [ "paypal.com", "google.com" ]

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {

    if navigationType == UIWebViewNavigationType.LinkClicked {

        if let host = request.URL?.host where safeList.contains(host) {
            return true // Open in web view
        }

        UIApplication.sharedApplication().openURL(request.URL!)
        return false
    }

    return true
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM