【问题标题】:How to open all links, besides some, in Safari with UIWebView?如何在带有 UIWebView 的 Safari 中打开除某些链接之外的所有链接?
【发布时间】:2016-11-12 12:03:20
【问题描述】:

我从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

【问题讨论】:

    标签: ios swift uiwebview


    【解决方案1】:

    您可以存储允许的 URL 列表并过滤请求 URL 的主机名。如果主机与允许的 URL 之一匹配,则返回 true 以允许 URL 加载到 Web 视图中。否则使用 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
    }
    

    【讨论】:

      猜你喜欢
      • 2012-01-19
      • 2011-04-05
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2015-12-02
      • 2023-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多