繁体   English   中英

iOS Swift WKWebView 不缩放

[英]iOS Swift WKWebView is not zooming

我正在开发一个 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 导航委托

 let isAllowZoom: Bool = false

    override func viewDidLoad() {

            webView.scrollView.scrollEnabled = 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);"
                webViewWB.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);"
                 webViewWB.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 以返回 nil 如下:

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

希望它有助于让您的页面采用本机行为

您必须通过添加以下内容将它的scalesPageToFit属性设置为true

webView.scalesPageToFit = true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM