我正在开发一个 iOS 应用程序,该应用程序有一个要在其中加载的 Web View 。我正在使用 WKWebView
但它没有缩放。
我设置了webView的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)
}
}
关于iOS Swift WKWebView 不缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55126409/