WKWebView 禁用缩放和快速编辑

问题描述 投票:0回答:4

在该 Web 视图中使用 WKWebView 加载 url 无法禁用缩放和编辑。这是我的代码。

 [myWebView = WKWebView(frame: CGRect( x: 0, y: 20, width: self.view.frame.width, height: self.view.frame.height - 20 ), configuration: WKWebViewConfiguration() )
        myWebView.translatesAutoresizingMaskIntoConstraints = false
        myWebView.navigationDelegate = self
        myWebView.uiDelegate = self
        self.myWebView.isMultipleTouchEnabled = false
        view = myWebView
        myWebView.scrollView.showsHorizontalScrollIndicator = false;
        myWebView.scrollView.showsVerticalScrollIndicator = false;

        myWebView.uiDelegate = self
        myWebView.navigationDelegate = self
        myWebView.scrollView.delegate = self


        myWebView.scrollView.bounces = false
        myWebView.scrollView.bouncesZoom = true
        myWebView.isMultipleTouchEnabled = false

      func viewForZooming(in: UIScrollView) -> UIView? {
        return nil;
      }

如何去掉编辑和缩放打开。帮助我提前谢谢。

ios swift uiwebview wkwebview
4个回答
7
投票

要禁用缩放,请使用以下代码行

      let source: String = "var meta = document.createElement('meta');" + "meta.name = 'viewport';" + "meta.content = 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no';" + "var head = document.getElementsByTagName('head')[0];" + "head.appendChild(meta);";
      let script: WKUserScript = WKUserScript(source: source, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
      let userContentController: WKUserContentController = WKUserContentController()
      let conf = WKWebViewConfiguration()
      conf.userContentController = userContentController
      userContentController.addUserScript(script)
      let webView = WKWebView(frame: CGRect.zero, configuration: conf)

希望对你有帮助


7
投票

斯威夫特 4: 禁用缩放

override func viewDidLoad() {
      super.viewDidLoad()
      self.webView.scrollView.delegate = self
}

func scrollViewWillBeginZooming(_ scrollView: UIScrollView, with view: UIView?) {
      scrollView.pinchGestureRecognizer?.isEnabled = false
    }

0
投票

那么现在

meta.content = 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no';

在许多浏览器(包括 Chrome 和 Safari)上不再工作,有一个新的修复

在你的视图控制器中实现这个,其中“webView”是你的webView。让你的View Controller继承UIScrollViewDelegate

webView.load(URLRequest(url: url))
webView.scrollView.isMultipleTouchEnabled = false
webView.scrollView.delegate = self;

func scrollViewWillBeginZooming(_ scrollView: UIScrollView, with view: UIView?) {
  scrollView.pinchGestureRecognizer?.isEnabled = false
}

func scrollViewDidEndZooming(_ scrollView: UIScrollView, with view: UIView?, atScale scale: CGFloat) {
   webView.scrollView.setZoomScale(1.0, animated: false);
   webView.scrollView.setContentOffset(CGPoint(x: 0,y: 0), animated: false);
}

func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
    scrollView.panGestureRecognizer.isEnabled = false
}

0
投票

一行代码可能足以禁用缩放、编辑等功能:

webView.isUserInteractionEnabled = false
© www.soinside.com 2019 - 2024. All rights reserved.