我从here获取了以下代码,以打开与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
?
答案 0 :(得分:3)
您可以存储允许的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
}