为什么我的html不加载到我的WKWebView中

时间:2018-07-28 16:16:47

标签: ios swift wkwebview

我正在尝试将嵌入的html和javascript渲染到我的WKWebView中。该视图将显示使用tradingview.com的股票图表。

我得到的只是一个空白的网络视图。

@IBOutlet weak var wbTradingView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        let embedCode =  "<html><body><!-- TradingView Widget BEGIN --><div class='tradingview-widget-container\"><div id=\"tradingview_70a8b\"></div><div class=\"tradingview-widget-copyright\"><a href=\"https://www.tradingview.com/symbols/NASDAQ-FB/\" rel=\"noopener\" target=\"_blank\"><span class=\"blue-text\">FB chart</span></a> by TradingView</div><script type=\"text/javascript\" src=\"https://s3.tradingview.com/tv.js\"></script><script type=\"text/javascript\">new TradingView.widget({\"autosize\": true,\"symbol\": \"NASDAQ:FB\",\"interval\": \"D\",\"timezone\": \"Etc/UTC\",\"theme\": \"Dark\",\"style\": \"2\",\"locale\": \"en\",\"toolbar_bg\": \"#f1f3f6\",\"enable_publishing\": false,\"hide_top_toolbar\": true, \"hide_legend\": true,\"save_image\": false,\"container_id\": \"tradingview_70a8b\"});</script></div><!-- TradingView Widget END --></body></html>"

        wbTradingView.translatesAutoresizingMaskIntoConstraints = false
        wbTradingView.loadHTMLString(embedCode, baseURL: nil)


    }

解决方案:

override func viewDidLoad() {
        super.viewDidLoad()
        let embedCode = """
            <html>
                <body>
                    <div class="tradingview-widget-container">
                      <div id="tradingview_70a8b"></div>
                      <div class="tradingview-widget-copyright"><a href="https://www.tradingview.com/symbols/NASDAQ-FB/" rel="noopener" target="_blank"><span class="blue-text">FB chart</span></a> by TradingView</div>
                      <script type="text/javascript" src="https://s3.tradingview.com/tv.js"></script>
                      <script type="text/javascript">
                      new TradingView.widget(
                      {
                      "autosize": true,
                      "symbol": "NASDAQ:FB",
                      "interval": "D",
                      "timezone": "Etc/UTC",
                      "theme": "Dark",
                      "style": "2",
                      "locale": "en",
                      "toolbar_bg": "#f1f3f6",
                      "enable_publishing": false,
                      "hide_top_toolbar": true,
                      "hide_legend": true,
                      "save_image": false,
                      "container_id": "tradingview_70a8b"
                    }
                      );
                      </script>
                    </div>
                </body>
            </html>
            """

        wbTradingView.translatesAutoresizingMaskIntoConstraints = false
        wbTradingView.loadHTMLString(embedCode, baseURL: nil)


    }

1 个答案:

答案 0 :(得分:1)

通过使用

https://validator.w3.org/check

您的html无效,您可以通过设置此值来验证

let embedCode  = """
 <html>
   <body bgcolor="#E6E6FA">
    <h1>Hello world!</h1>
      <p><a href="https://www.w3schools.com">Visit W3Schools.com!</a></p>
  </body>
</html>
"""