我正在尝试将嵌入的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)
}
答案 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>
"""