WKWebView 的“loadHTMLString”高度宽度问题

Posted

技术标签:

【中文标题】WKWebView 的“loadHTMLString”高度宽度问题【英文标题】:"loadHTMLString" height width issue with WKWebView 【发布时间】:2019-07-25 10:19:12 【问题描述】:

我正在尝试将 html 内容加载到 WKWebView,它无法正确加载,与屏幕高度/宽度相同,相同的代码在 UIWebView 上工作正常,请参阅以下代码

webView.loadHTMLString(htmlString!, baseURL: nil)

HTML 字符串内容<style type="text/css"> #container width: 667px; height: 375px; margin: 0 auto </style> 667px 是屏幕高度,375px 是屏幕宽度。

<!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <title>Highcharts Example</title>

            <style type="text/css">
                #container 
                    width: 667px;
                    height: 375px;
                    margin: 0 auto
                
            </style>
            </head>
    <body>
        <script src="https://code.highcharts.com/highcharts.js"></script>

        <div id="container"></div>


        <script type="text/javascript">

            Highcharts.chart('container',    
                    //Chart code.
                             );
            </script>
    </body>
</html>

我能做些什么来解决这个问题?

【问题讨论】:

尝试改变 webView contentMode,它应该调整其内容的大小 我尝试了 contentMode 与 AspectFill、AspectFit、缩放到填充但没有得到正确的输出。 【参考方案1】:

在您的 html 代码之前添加 headerString 并尝试如下所示

let description = "<p> HTML content <p>"
var headerString = "<header><meta name='viewport' content='width=device-width, 
initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0'></header>"
headerString.append(description)              
self.webView.loadHTMLString("\(headerString)", baseURL: nil)

【讨论】:

感谢@ishwarLalJanwa,它正在工作,但是,如果我在 WKWebView 和主视图之间设置 30 像素的前导和尾随空格,那么它将显示水平滚动,我不想滚动那我能做什么这个。 如何让图表完全适合 WKWebView(与 WKWebView 大小相同)

以上是关于WKWebView 的“loadHTMLString”高度宽度问题的主要内容,如果未能解决你的问题,请参考以下文章

已有iOS项目集成cordova并使用wkwebview

WKWebView 那些坑

WKWebView 那些坑

WKWebView使用

iOS WKWebView 那些坑

WKWebview 和 WebViewJavascriptBridge