2016-07-10 3 views
3

я получил следующий код из here открыть все другие ссылки, которые не соответствуют мой домен в Safari:Как открыть все ссылки, кроме некоторых, в Safari с UIWebView?

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?

ответ

3

Вы можете сохранить список разрешенных URL-адресов и фильтровать имя хоста URL-адреса запроса. Если хост соответствует одному из разрешенных URL-адресов, верните значение true, чтобы разрешить загрузку URL-адреса в веб-представлении. В противном случае используйте UIApplication.openURL(), чтобы открыть URL-адрес в Safari.

Например:

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 
}