一.手勢放大縮小頁面解決方法
1.通過操作webview中scrollview的代理方法來關閉
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { return nil; }
但是中途出現了一個問題就是在網頁適配iPhone X的時候添加的js適配代碼導致失效問題
2.通過注入js來關閉手勢捏合效果
_webConfig = [WKWebViewConfiguration new]; WKUserContentController *userController = [WKUserContentController new]; NSString *js = @" $('meta[name=description]').remove(); $('head').append( '<meta name=\"viewport\" content=\"width=device-width, initial-scale=1,user-scalable=no\">' );"; WKUserScript *script = [[WKUserScript alloc] initWithSource:js injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:NO]; [userController addUserScript:script]; [userController addScriptMessageHandler:self name:@"openInfo"]; _webConfig.userContentController = userController;
但是這種方法沒有起作用,可能是被覆蓋了,於是用的上面的方法
二.關閉WKWebview中長安手勢觸發3d touch的效果
已開始上網搜說js可以自己關閉,確實是關閉了,但是整個頁面不能滑動了,所以還是自己關閉通過下面的代碼
for (UIView* subview in self.wkWebView.scrollView.subviews) { if ([subview isKindOfClass:NSClassFromString(@"WKContentView")]) { for (UIGestureRecognizer* longPress in subview.gestureRecognizers) { if ([longPress isKindOfClass:UILongPressGestureRecognizer.class]) { [subview removeGestureRecognizer:longPress]; } } } }
通過取消WKContentView上所有的長按手勢來關閉
