Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使用UIWebView在Safari中打开除部分链接之外的所有链接?_Ios_Swift_Uiwebview - Fatal编程技术网

Ios 如何使用UIWebView在Safari中打开除部分链接之外的所有链接?

Ios 如何使用UIWebView在Safari中打开除部分链接之外的所有链接?,ios,swift,uiwebview,Ios,Swift,Uiwebview,我从获得了以下代码,用于打开与Safari中我的域不匹配的所有其他链接: func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool { if navigationType == UIWebViewNavigationType.LinkClicked { UIApp

我从获得了以下代码,用于打开与Safari中我的域不匹配的所有其他链接:

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

虽然我如何允许在my
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
}