【问题标题】:How to set scale in WKWebview?如何在 WKWebview 中设置比例?
【发布时间】:2017-07-12 23:41:55
【问题描述】:

我正在尝试修改 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 highchart 中的时间段滑块失去了它的功能。任何形式的新想法都将不胜感激。

【问题讨论】:

    标签: javascript html swift cocoa wkwebview


    【解决方案1】:

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

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

    就我而言,我的 Xcode 项目中有用于隐私的 html 文件。我在下面添加了javascript代码,它对我有用。

    就像你在 UIWebView 中使用 scalePageToFit 一样工作。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2019-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-11
      • 2018-07-19
      • 1970-01-01
      相关资源
      最近更新 更多