禁用UIWebView超链接

时间:2012-12-03 23:27:05

标签: ios

我的目标是允许UIWebView加载初始链接,但不允许任何进一步的导航。

我看到了问题:

Disable hyperlinks in UIWebView

所以,我从接口构建器连接了引用的webView属性。

我指定我的UIViewController使用UIWebViewDelegate:

@interface LegalViewController : UIViewController<UIWebViewDelegate>

在代码中,在viewDidLoad上,我执行以下操作:

 mFirstLoad = TRUE;
 webView.delegate = self;

我有以下代码:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if (!mFirstLoad)
        return FALSE;

    mFirstLoad = FALSE;
    return TRUE;
}

shouldStartLoadWithRequest被称为初始调用和我点击链接时。但是,即使shouldStartLoadWithRequest返回FALSE,UIWebView仍会继续并加载新页面。

我在iOS模拟器6.0上看到了这个问题

如何解决此问题?

3 个答案:

答案 0 :(得分:2)

根据类型返回NO以排除链接

return!(navigationTpe == UIWebViewNavigationTypeLinkClicked);

答案 1 :(得分:0)

你的布尔值有可能以某种方式重置吗?如果你只为(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType返回NO会怎么样?

答案 2 :(得分:0)

这与我在评论中写的一样:

我想我找到了问题的原因。我不确定如何正确调用它(不是HTML和Javascript的大专家)。但是,该链接具有以下代码:"<a href="/something" data-transition="flip"</a>结果,调用了回调,但看起来忽略了此回调的结果。

结果最有可能的解决方案是:Remove hyperlinks in uiwebview