我想禁止WKWebView双击导致的缩放,如何实现呢?我试过设置他的UIScrollView的delegate,但是并没有走代理方法。

解决方案 »

  1.   

    wkwebview不是继承于uiscrollview。也没有实现uiscrollviewdelegate的协议方法。你可以查看一下webview的subviews。然后看点击事件。
      

  2.   

    我设置的就是wkwebview 的属性scrollview,但是scrollview代理没走。
      

  3.   

    // iterate over all subviews of the WKWebView's scrollView
    for subview in _webView.scrollView.subviews {    // iterate over recognizers of subview
        for recognizer in subview.gestureRecognizers ?? [] {        // check the recognizer is  a UITapGestureRecognizer
            if recognizer.isKind(of: UITapGestureRecognizer.self) {            // cast the UIGestureRecognizer as UITapGestureRecognizer
                let tapRecognizer = recognizer as! UITapGestureRecognizer            // check if it is a 1-finger double-tap
                if tapRecognizer.numberOfTapsRequired == 2 && tapRecognizer.numberOfTouchesRequired == 1 {                // remove the recognizer
                    subview.removeGestureRecognizer(recognizer)
                }
            }
        }
    }
      

  4.   

    制作手机端页面的时候会加入一个meta标签,
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">该meta标签的作用是让当前viewport的宽度等于设备的宽度,同时不允许用户手动缩放。其中 maximum-scale为允许用户的最大缩放值,user-scalable为是否允许用户进行缩放,yes(默认)代表允许,no(0)代表不允许,两者结合使用可以阻止页面被放大(经测试,少一项都达不到效果)
    -