最近在做项目时,用到了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];
}
}
}
希望对你们有用