美文网首页
WKWebView 怎么取消捏合放大手势

WKWebView 怎么取消捏合放大手势

作者: Hamiltion | 来源:发表于2020-06-30 17:31 被阅读0次

最近在做项目时,用到了webView,测试人员说,不要捏合放大的功能,于是我就在网上查,找到了一个方法,但是这个方法有有一定的问题,下面是我在网上找到的答案:

(void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
    NSString *injectionJSString = @"var script = document.createElement('meta');"
    "script.name = 'viewport';"
    "script.content="width=device-width, user-scalable=no";"
    "document.getElementsByTagName('head')[0].appendChild(script);";
    [webView evaluateJavaScript:injectionJSString completionHandler:nil];
}

这样做有很大的一个问题就是可能会导致webview上的字变得很大,我的项目就是这样,导致字体变很大,于是我放弃了这种方案。
可是我在网上就只找到了这种方法,怎么办。于是想了想,既然是捏合手势,我把手势去掉是不是就可以了呢,然后打印了一下webView的手势,发现webView上没有任何手势,于是我又想到了webView上一个至关重要的view,那就是scrollView,果不其然,scrollView上有很多手势,我把手势都打印出来了,发现了一个熟悉的手势UIScrollViewPinchGestureRecognizer,虽然这个手势没有对外公开,但是看到PinchGestureRecognizer,就知道是捏合手势了,我们只需要删除掉就可以了,下面是我的代码

- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation {
    NSArray *gestureRecognizers = webView.scrollView.gestureRecognizers;
    Class UIScrollViewPinchGestureRecognizerClass = NSClassFromString(@"UIScrollViewPinchGestureRecognizer");
    for (id gestureRecognizer in gestureRecognizers) {
        if ([gestureRecognizer isKindOfClass:UIScrollViewPinchGestureRecognizerClass]) {
            [webView.scrollView removeGestureRecognizer:gestureRecognizer];
        }
    }
}

希望对你们有用

相关文章

网友评论

      本文标题:WKWebView 怎么取消捏合放大手势

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