单击iOS UIWebView中的html链接不执行任何操作

时间:2016-03-21 19:10:03

标签: ios hyperlink uiwebview uiwebviewdelegate

我有loadHTMLString使用<a href="http://www.google.com">google</a>从核心数据加载html内容。如果我在html内容中有html链接(例如shouldStartLoadWithRequest)并单击此链接则不执行任何操作。绝对没有任何事情发生。

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

我试图设置webView.userInteractionEnabled = true webView.dataDetectorTypes = UIDataDetectorTypes.All

border

有人知道会出现什么问题吗?

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分:0)

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

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