我正在尝试修改 WKWebView
中页面加载的比例。据我在 html 中查看,它正在工作。但 WKWebview 中的实际比例不会改变。
这是我注入(inject)脚本的方式:
let script =
"var viewport = document.querySelector(\"meta[name=viewport]\");" +
"viewport.setAttribute('content', 'width=device-width, initial-scale=0.4, user-scalable=0');" +
let userScript = WKUserScript(source: script,
injectionTime: WKUserScriptInjectionTime.atDocumentEnd,
forMainFrameOnly: true)
userContentController.addUserScript(userScript)
打印 html:
webView.evaluateJavaScript("document.getElementsByTagName('html')[0].innerHTML", completionHandler: { (innerHTML, error) in
print(innerHTML)
})
控制台中的 HTML 结果:
Optional(<!--<![endif]--><head>
<title>Bitcoin (BTC) $2391.84 (1.85%) | CoinMarketCap</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=0.4, user-scalable=0">
<meta name="google-site-verification" content="EDc1reqlQ-zAgeRrrgAxRXNK-Zs9JgpE9a0wdaoSO9A">
<meta property="og:type" content="website">
我问自己这是否是正确的方法。我也试过:let script = document.body.style.zoom = '0.8';
和 let script = document.body.style.webkitTransform = 'scale(0.8)';
两者都在比例方面起作用,但使用这种方法,this 中的时间段 slider highchart 失去了它的功能。任何一种新想法都将不胜感激。
最佳答案
添加<meta name="viewport" content="width=device-width, shrink-to-fit=YES">
到您的 HTML 文件。
(我在之后添加了但不确定你是否可以在任何地方添加它)
在我的例子中,我的 Xcode 项目中有用于保护隐私的 html 文件。我在 的正下方添加了 javascript 代码,它对我有用。
它的工作方式就好像你使用了 scalePageToFit
在 UIWebView 中。
希望对您有所帮助。
关于javascript - WKWebview如何设置比例尺?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45069193/