如何在WKWebview中设置比例?

时间:2017-07-12 23:41:56

标签: javascript html swift cocoa wkwebview

我正在尝试修改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高图中的时间段滑块失去了它的功能。任何形式的新想法都会受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

<meta name="viewport" content="width=device-width, shrink-to-fit=YES">添加到您的HTML文件中。

(我在之后添加,但不确定是否可以将其添加到任何地方)

在我的情况下,我的Xcode项目中有用于保护隐私的html文件。我在的正下方添加了javascript代码,并为我完成了窍门。

它的工作方式就像您在UIWebView中使用scalePageToFit

希望有帮助。