我正在使用mywebview.loadHTMLString(htmlCode, baseURL: nil)
但它无法正常工作,这意味着它不支持javascript和css,它只显示该html代码中的文本。
我正在从 api 获取 html 代码并将其存储到字符串数据类型中,需要传递给 web 视图。
我发现了一件事webview.load()
但它显示"无法将类型'字符串'的值转换为预期的参数类型'数据'。
有谁知道如何解决这个问题?
这是我想要显示的简单演示 html 代码。但是我得到了我在上面的html中使用的颜色。
<!doctype html>
<html>
<head>
<title></title>
</head>
<body>
<p>This is a demo html code, <span style="background-color:#FF0000;">which i wanted to display on UIwebview</span> .</p>
<p>But <span style="color:#800080;">it's wokring</span> properly if i save this code as a<span style="color:#0000FF;"> .html</span> extension then works perfect.</p>
</body>
</html>
不要将 baseUrl 作为 nil,提供 js、css 和其他文件所在的 URL。
根据文档 webview.load(( 期望数据不是字符串。您可以将 html 字符串转换为数据:
guard let data = yourString.data(using: .utf8) else {
print("Couldn't convert string to data")
return
}
webview.loadHTMLString(( 应该将 html 作为字符串加载。您的基本网址属性可能是导致此问题的原因。看看这个答案,它是webview.loadHTMLString((的一个工作示例。
使用此代码它为您工作
let webView = UIWebView()
webView.loadHTMLString("<html><body><p>Hello!</p></body></html>", baseURL: nil)
(或(
let webView = UIWebView()
webView.loadHTMLString("(htmlcode)", baseURL: nil)
也许您没有正确转义所有字符。请发布您尝试过的完整代码。例如,如果将以下标记放在字符串中:
<span style="background-color:#FF0000;">
你需要像这样做
let span = "<span style="background-color:#FF0000;">"
然后,您可以像这样将 HTML 字符串放在一起:
let html = "<!DOCTYPE html>" +
"<html>" +
"<head>" +
"<meta charset="UTF-8">"
等等。要加载 HTML 字符串,只需使用
webView.loadHTMLString(html, baseURL: nil)