【问题标题】:Click html link in iOS UIWebView do nothing单击 iOS UIWebView 中的 html 链接什么也不做
【发布时间】:2016-07-08 11:13:24
【问题描述】:

我有 UIWebView 使用来自核心数据的 loadHTMLString 加载 html 内容。如果我在 html 内容中有 html 链接(例如 <a href="http://www.google.com">google</a>)并单击此链接,它什么也不做。绝对没有任何事情发生。

我尝试实现委托方法shouldStartLoadWithRequest,当我打印request.URL 的内容时,它返回about:blank

我尝试在我的UIWebView中设置

webView.userInteractionEnabled = true
webView.dataDetectorTypes = UIDataDetectorTypes.All

有人知道哪里出了问题吗?

【问题讨论】:

  • 你有没有用下面的方法得到url[webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('xyz').href"];
  • 感谢您的回答。我现在试了一下,它返回“http://www.google.com/”应该没问题。
  • @marysmech :发布任何对您有用的答案...

标签: ios hyperlink uiwebview uiwebviewdelegate


【解决方案1】:

请尝试以下代码。 实现 UIWebview 委托方法

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if(navigationType==UIWebViewNavigationTypeLinkClicked)
    {
        [[UIApplication sharedApplication]openURL:request.URL];
        return NO;
    }
    return YES;
}

【讨论】:

    【解决方案2】:

    Swift 4.2

    你可以试试下面的代码,一定要实现UIWebViewDelegate

    func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebView.NavigationType) -> Bool {
        if navigationType == .linkClicked {
            if let url = request.url {
                if #available(iOS 10.0, *) {
                    UIApplication.shared.open(url, options: [:], completionHandler: nil)
                } else {
                    UIApplication.shared.openURL(url)
                }
            }
            return false
        }
        return true
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-17
      相关资源
      最近更新 更多