Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 禁用UIWebView超链接_Ios - Fatal编程技术网

Ios 禁用UIWebView超链接

Ios 禁用UIWebView超链接,ios,Ios,我的目标是允许UIWebView加载初始链接,但不允许任何进一步的导航 我看到一个问题: 所以,我从interface builder连接了引用的webView属性 我指定我的UIViewController使用UIWebViewDelegate: @interface LegalViewController : UIViewController<UIWebViewDelegate> 我有以下代码: - (BOOL)webView:(UIWebView *)webView sho

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

我看到一个问题:

所以,我从interface builder连接了引用的webView属性

我指定我的UIViewController使用UIWebViewDelegate:

@interface LegalViewController : UIViewController<UIWebViewDelegate>
我有以下代码:

- (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上看到了这个问题


如何修复此行为?

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


回来!(navigationTpe==UIWebViewNavigationTypeLinkClicked)

您的布尔值是否可能以某种方式被重置?如果只为
(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)请求导航类型:(UIWebView导航类型)导航类型返回NO,会发生什么情况?

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


我想我找到了问题的原因。我不知道如何正确地调用它(不是HTML和Javascript方面的专家)。但是,该链接有以下代码:

谢谢。这将简化我的代码。但是,这并不能解决主要问题。即使我从shouldStartLoadWithRequest返回NO/FALSE,UIWebView仍会加载第二个页面。您确定正在调用委托方法吗?是的。我在其中放置了一个断点,并看到它被命中(无论是初始页面加载还是单击链接后)如果你只输入
返回NO;
它是否仍然加载?如果我只返回NO,它就不会加载初始页面。我想我找到了问题的原因。我不确定如何正确调用它(不是HTML和Javascript方面的专家)。但是链接有以下代码:结果,调用了回调,但似乎忽略了此回调的结果。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if (!mFirstLoad)
        return FALSE;

    mFirstLoad = FALSE;
    return TRUE;
}