[英]iOS Swift WKWebView is not zooming
I am working on an iOS application that has a web view to load inside it.我正在开发一个 iOS 应用程序,该应用程序可以在其中加载 Web 视图。 I am using WKWebView
but it is not zooming.我正在使用WKWebView
但它没有缩放。
I set minimum and maximum scale of webView's scrollView
but still doesn't work.我设置了webView's scrollView
最小和最大比例,但仍然不起作用。
@IBOutlet weak var webView: WKWebView!
webView.scrollView.minimumZoomScale = 0.1
webView.scrollView.maximumZoomScale = 1.0
How can I enable scaling of WKWebView
?如何启用WKWebView
缩放?
works on Xcode 11, swift 4 , iOS 12,13 .适用于 Xcode 11、swift 4、iOS 12,13。 Implement WebView navigationDelegate实现 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)
}
}
then try this :然后试试这个:
webView.scrollView.scrollEnabled = true
webView.scrollView.bounces = false
webView.allowsBackForwardNavigationGestures = false
webView.contentMode = .ScaleToFill
// Set the WKWebView scroll view delegate
webView.scrollView.delegate = self
Conform your vc to UIScrollViewDelegate and add it's delegate method viewForZoomingInScrollView to return nil as follows :使您的 vc 符合 UIScrollViewDelegate 并添加它的委托方法 viewForZoomingInScrollView 以返回 nil 如下:
func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
return nil
}
Hope it helps to get your page adopt native behavior希望它有助于让您的页面采用本机行为
您必须通过添加以下内容将它的scalesPageToFit
属性设置为true
:
webView.scalesPageToFit = true
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.