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