iOS Swift Wkwebview并不放大



我正在处理一个iOS应用程序,该应用程序具有用于加载其内部的Web视图。我正在使用WKWebView,但不是缩放。

我设置了webView's scrollView的最小和最大比例,但仍然不起作用。

@IBOutlet weak var webView: WKWebView!
webView.scrollView.minimumZoomScale = 0.1
webView.scrollView.maximumZoomScale = 1.0

如何启用 WKWebView的缩放?

在Xcode 11,Swift 4,iOS 12,13上工作。实现WebView NavigationDelegate

    let isAllowZoom: Bool = false
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        webView.scrollView.isScrollEnabled = true
        webView.scrollView.bounces = false
        webView.allowsBackForwardNavigationGestures = false
        webView.contentMode = .scaleToFill
        webView.navigationDelegate = self
    }
    
    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        if isAllowZoom {
            let javascript = "var meta = document.createElement('meta');meta.setAttribute('name', 'viewport');meta.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=10.0, user-scalable=yes');document.getElementsByTagName('head')[0].appendChild(meta);"
            webView.evaluateJavaScript(javascript, completionHandler: nil)
        } else {
            let javascript = "var meta = document.createElement('meta');meta.setAttribute('name', 'viewport');meta.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no');document.getElementsByTagName('head')[0].appendChild(meta);"
            webView.evaluateJavaScript(javascript, completionHandler: nil)
        }
    }

然后尝试一下:

        webView.scrollView.scrollEnabled = true               
        webView.scrollView.bounces = false                    
        webView.allowsBackForwardNavigationGestures = false   
        webView.contentMode = .ScaleToFill
//  Set the WKWebView scroll view delegate
        webView.scrollView.delegate = self

将您的VC符合UISCROLLVIEWDELEGATE,并添加其委托方法ViewForzoomingInsCrollview以返回零,如下所示:

 func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
        return nil
    }

希望它有助于使您的页面采用本地行为

您必须通过添加:

将其是scalesPageToFit属性设置为true
webView.scalesPageToFit = true

最新更新