美文网首页
iOS知识整理:用笨方法解决拦截html的点击事件

iOS知识整理:用笨方法解决拦截html的点击事件

作者: 大布溜 | 来源:发表于2018-01-02 14:01 被阅读333次
    • 背景故事:
      项目中涉及到一个html的页面.
      wkwebview加载的web页面.
      需要
      “在web中点击返回主页按钮时,返回到原生主页,而非web主页”

    2018年一月2号的我还不懂html5和h5与原生的交互.

    尝试了很多方法....首先,html5 网站的代码是不能改的...javascript也没有预留和ios交互的接口...里面的页面转换也不能用wkwebview的delegate拦截到...

    于是想了一个我自己感觉有点笨的方法...

    思路是用UITouch来控制webview的点击事件,每次点击之后过0.5s(留出页面转换的事件)去获取当前的url,如果url是web主页的url就返回到原生主页..

    代码如下:
    先创建一个名为CustomWKWebView的子类,.h文件如下

    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
        
        static UIEvent *e = nil;
        
        if (e != nil && e == event) {
            e = nil;
            return [super hitTest:point withEvent:event];
        }
        
        e = event;
        
        if (event.type == UIEventTypeTouches) {
            NSSet *touches = [event touchesForView:self];
            UITouch *touch = [touches anyObject];
            if (touch.phase == UITouchPhaseBegan) {
                NSLog(@"Touches began");
                NSLog(@"%@",self.URL.absoluteString);
                [self performSelector:@selector(delayMethod)
                           withObject:nil
                           afterDelay:0.5f];
                
            }else if(touch.phase == UITouchPhaseEnded){
                NSLog(@"Touches Ended");
                
            }else if(touch.phase == UITouchPhaseCancelled){
                NSLog(@"Touches Cancelled");
                
            }else if (touch.phase == UITouchPhaseMoved){
                NSLog(@"Touches Moved");
                
            }
        }
        return [super hitTest:point withEvent:event];
    }
    
    -(void)delayMethod
    {
        NSLog(@"%@",self.URL.absoluteString);
        if ([self.URL.absoluteString isEqualToString:@"主页的url"]) {
            [[NSNotificationCenter defaultCenter] postNotificationName:@"wkwebview-backtohome" object:nil];
        }
    
    }
    

    相关文章

      网友评论

          本文标题:iOS知识整理:用笨方法解决拦截html的点击事件

          本文链接:https://www.haomeiwen.com/subject/fcwfnxtx.html