美文网首页
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