美文网首页
H5界面打开多级,滑动返回问题

H5界面打开多级,滑动返回问题

作者: 清风烈酒2157 | 来源:发表于2020-12-29 15:15 被阅读0次

    前言

    有个需求,在控制器打开一个H5界面,H5界面可能内部多次跳转,如果开启allowsBackForwardNavigationGestures=yes左滑可以返回上一层级的H5。但是在滑动返回上一级时候要做个弹窗,来判断是否保留信息,然后在执行滑动。(导航栏按钮返回没问题,现在就是滑动返回存在问题)

    • 分析

    WKWebView有个属性canGoBackYES就是可以左滑,为NO表示为第一级。

    问题解决

    通过重新goBack方法,发现并没有什么作用。

    1. 禁用导航栏左滑和WKWebView左滑,在UIWindow添加View,在添加手势,效果不太好。

    2. 通过UIPanGestureRecognizer设置target为self.navigationController.interactivePopGestureRecognizer.delegate,并将Action设置为空。监听UIPanGestureRecognizer手势的代理。

    id target = self.navigationController.interactivePopGestureRecognizer.delegate;
        UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:target action:nil];
        pan.delegate = self;
        [self.view addGestureRecognizer:pan];
    

    监听代理:

    当为canGoBack为YES事件交给H5开发管理
    为NO,自己来管理事件。

    
    - (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
    {
        if (self.webView.canGoBack){
            if (![isnull(self.onBackeventName) isEqualToString:@""])
            [self sendNativeCommonMessage:MTWebApponBackEvent
                                   params:@{@"name":self.onBackeventName}
             requestCode:@""
            responseCode:@""];
        }else{
            
            [self.navigationController popViewControllerAnimated:YES];
        }
        
        return YES;
        
    }
    

    相关文章

      网友评论

          本文标题:H5界面打开多级,滑动返回问题

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