我的目标是允许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上看到了这个问题
如何解决此问题?
答案 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