0

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

我看到问题:

禁用 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 Simulator 6.0 上看到了这个问题

我该如何解决这种行为?

4

3 回答 3

2

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

返回 !(navigationTpe==UIWebViewNavigationTypeLinkClicked);

于 2012-12-03T23:39:07.300 回答
0

您的布尔值是否可能以某种方式重置?如果你只返回 NO 会发生什么(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

于 2012-12-04T06:41:41.690 回答
0

这是我在评论中写的相同内容:

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

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

于 2012-12-04T22:35:09.440 回答