WKWebView遇到的問題匯總


一.手勢放大縮小頁面解決方法

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上所有的長按手勢來關閉

 

by:初光夫


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM