UIwebView shouldStartLoadWithRequest 委托调用后需要点击手势方法

Posted

技术标签:

【中文标题】UIwebView shouldStartLoadWithRequest 委托调用后需要点击手势方法【英文标题】:Need tap gesture method after UIwebView shouldStartLoadWithRequest delegate invocation 【发布时间】:2012-07-17 09:40:09 【问题描述】:

我的问题是我在 UIView 中有一个 webView,而 UIView 有点击手势和 web 视图类有 UIWebView 的委托。

我的问题是当我点击一个链接时,它首先调用 tap 然后 shouldStartLoadWithRequest 。所以我需要防止调用为点击视图而编写的代码。

任何有想法的人............

编辑

Web 视图委托的代码

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 

    if(navigationType == UIWebViewNavigationTypeLinkClicked)
    
        self.isAnyLinkTapped = YES;
        RELEASE(webURL);
        webURL = [[NSString stringWithFormat:@"%@",[request.URL absoluteString]] retain];
        NSArray *urlCoponents = [[request.URL absoluteString] componentsSeparatedByString:@"/"];
        if([urlCoponents count]>0)
        
//Some code here





我已经添加了这样的点击手势

_tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];

点击下面的代码正在调用。

- (void) tapped:(UITapGestureRecognizer *) recognizer 

    touchPointLocationForTap  = [recognizer locationInView:recognizer.view];

    [(WebViewController*)delegate setIsScreenTouched:YES];

    BOOL isThereAnySelection = [self isThereAnyTextSelectionOnWebView];

    if (!isThereAnySelection)
        [self performSelector:@selector(sendTapEventToWebController) withObject:nil afterDelay:1.2];  


【问题讨论】:

【参考方案1】:

请贴一些代码让大家看懂..

顺便说一句-

您可以使用此条件识别被触摸的视图

if([[touches view] isKindOfClass:[UIWebView class]])
//Do whatever you want to do with webview
else
//Rest of the code

【讨论】:

好的,我已经编辑了我的问题。我需要接触网络视图,但需要在单击但点击任何链接时防止点击:在 shouldStartLoadWithRequest:. 之前调用方法 因为您在 UIView 上添加了点击手势,这是您的 webview 的超级视图,总是被点击:将首先被调用。为什么要添加 tapGuesture? UIWebView中是否点击了超链接可以直接获取。 轻拍用于其他一些功能。 我可以知道什么样的功能? 当我点击网页视图时,html 会全屏阅读,而当我点击它时,它会缩小。同时在 html 的一侧点击页面翻转动画以显示下一页。它就像一本 html 书。现在 html 有一些链接,当我触摸链接时,它首先执行全屏模式,然后执行链接操作。

以上是关于UIwebView shouldStartLoadWithRequest 委托调用后需要点击手势方法的主要内容,如果未能解决你的问题,请参考以下文章

如何在 UIWebView 上显示覆盖而不阻止用户与 UIWebView 的交互

UIWebview 删除填充/边距

在 xib 上更改小部件的类? (将 UIWebView 更改为我自己的 UIWebView 类别)

UIWebView 正在请求位置权限

iOS小技能:UIWebView 被拒的解决方案(用更安全的WKWebView替代UIWebView)

在 UITableViewCell 中加载 UIWebView 并根据 UIWebview 的内容制作 UITabViewCell 的高度