我正在尝试修改WKWebView
中网页加载的比例。它正在我在html中查找。但是WKWebview中的实际比例没有变化。
以下是我如何注入脚本:
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高图中的时间段滑块失去了它的功能。任何形式的新想法都会受到高度赞赏。
答案 0 :(得分:0)
将<meta name="viewport" content="width=device-width, shrink-to-fit=YES">
添加到您的HTML文件中。
(我在之后添加,但不确定是否可以将其添加到任何地方)
在我的情况下,我的Xcode项目中有用于保护隐私的html文件。我在的正下方添加了javascript代码,并为我完成了窍门。
它的工作方式就像您在UIWebView中使用scalePageToFit
。
希望有帮助。