禁用UIWebView中的链接?

Don*_*son 19 iphone hyperlink uiwebview

我正在将一些内容从网络加载到一个UIWebView,但我希望所有链接都被禁用UIWebView.这可能吗?我可以解析文本,但我正在寻找更容易的东西.

Dav*_*ong 54

您可以给UIWebView一个委托并实现-webView:shouldStartLoadWithRequest:navigationType:委托方法return NO;(初始加载除外).

这将阻止用户查看除该单页之外的任何内容.

提供评论中要求的示例...开始于allowLoad=YES然后:

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
    return allowLoad;
}

- (void)webViewDidFinishLoad:(UIWebView*)webView {
    allowLoad = NO;
}
Run Code Online (Sandbox Code Playgroud)

  • @Praveen它实际上是三行代码. (4认同)
  • @Praveen我首先返回一个最初为"YES"但在`-webViewDidFinishLoad:`中设置为"NO"的变量. (2认同)

ser*_*enn 11

在Swift 4.0中测试:这种方法不需要额外的变量来测试这是否是初始加载.只需检查请求的类型(在本例中为LinkClicked),并在这种情况下返回false.否则只需返回true!

(当然要确保你设置webView.delegate)

func webView(_ webView: UIWebView, shouldStartLoadWith request: URLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    if navigationType == .linkClicked {
        return false
    }
    return true
}
Run Code Online (Sandbox Code Playgroud)