为什么我的 HTML 字符串在 WebView iOS 中没有显示正确的 html 标签?
why my HTML string doesn't show the correct html tag in WebView iOS?
所以我有这个带有 html 标签的字符串:
> "<h3>Kebijakan Privasi</h3>\r\n<h4>Pengumpulan Informasi
> Pribadi</h4>\r\n<p>Di MLI, Kami memahami bahwa hal privasi adalah hal
> yang penting. Kebijakan Privasi ini berlaku untuk seluruh produk,
> layanan dan informasi yang ditawarkan di dalam Platform MLI.
这里是完整的 HTML string 我有:
如你所见,句子"Kebijakan Privasi"有
元素
句子 "Pengumpulan Informasi Pribadi" 有 < h4 > 元素
所以我希望 "Kebijakan Privasi" (h3) 的大小大于 ""Pengumpulan Informasi Pribadi" (h4)
但这是我 运行 应用程序时的结果:
如您所见,"Kebijakan Privasi" 似乎比 "Pengumpulan Informasi Pribadi" 小,我希望相反。
我的 HTML 字符串没有样板文件 HTML 标签,我的意思是
< ! DOCTYPE HTML > , < head >, and < body >
就像我在顶部分享的字符串一样。它有效果吗?因为如果我看到来自 here 的视频教程,它似乎需要样板 HTML 标签
这里是我使用的简化代码,我用的是WKWebView class:
class PageContentVC: UIViewController {
@IBOutlet weak var webView: WKWebView!
var contentStringHTML = "some string with html tag in here"
override func viewDidLoad() {
super.viewDidLoad()
webView.navigationDelegate = self
webView.loadHTMLString(contentStringHTML, baseURL: nil)
}
}
extension PageContentVC : WKNavigationDelegate {
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
activityIndicator.stopAnimating()
webView.isHidden = false
}
func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
activityIndicator.stopAnimating()
}
}
那么如何解决这个问题?也许你有更好的解决方案。
我终于找到了答案。我不是网络开发人员,所以您似乎还必须将 css 脚本添加到 html 字符串中,像这样
var someHTMLString = """
<!DOCTYPE html>
<html lang="en">
<head>
<title>Content Page</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=0.75">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>
\(yourcontentHTMLStringHere)
</body>
</html>
"""
然后加载到WKWebView:
webView.loadHTMLString(someHTMLString, baseURL: nil)
所以我有这个带有 html 标签的字符串:
> "<h3>Kebijakan Privasi</h3>\r\n<h4>Pengumpulan Informasi
> Pribadi</h4>\r\n<p>Di MLI, Kami memahami bahwa hal privasi adalah hal
> yang penting. Kebijakan Privasi ini berlaku untuk seluruh produk,
> layanan dan informasi yang ditawarkan di dalam Platform MLI.
这里是完整的 HTML string 我有:
如你所见,句子"Kebijakan Privasi"有
元素 句子 "Pengumpulan Informasi Pribadi" 有 < h4 > 元素
所以我希望 "Kebijakan Privasi" (h3) 的大小大于 ""Pengumpulan Informasi Pribadi" (h4)
但这是我 运行 应用程序时的结果:
如您所见,"Kebijakan Privasi" 似乎比 "Pengumpulan Informasi Pribadi" 小,我希望相反。
我的 HTML 字符串没有样板文件 HTML 标签,我的意思是
< ! DOCTYPE HTML > , < head >, and < body >
就像我在顶部分享的字符串一样。它有效果吗?因为如果我看到来自 here 的视频教程,它似乎需要样板 HTML 标签
这里是我使用的简化代码,我用的是WKWebView class:
class PageContentVC: UIViewController {
@IBOutlet weak var webView: WKWebView!
var contentStringHTML = "some string with html tag in here"
override func viewDidLoad() {
super.viewDidLoad()
webView.navigationDelegate = self
webView.loadHTMLString(contentStringHTML, baseURL: nil)
}
}
extension PageContentVC : WKNavigationDelegate {
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
activityIndicator.stopAnimating()
webView.isHidden = false
}
func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
activityIndicator.stopAnimating()
}
}
那么如何解决这个问题?也许你有更好的解决方案。
我终于找到了答案。我不是网络开发人员,所以您似乎还必须将 css 脚本添加到 html 字符串中,像这样
var someHTMLString = """
<!DOCTYPE html>
<html lang="en">
<head>
<title>Content Page</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=0.75">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>
\(yourcontentHTMLStringHere)
</body>
</html>
"""
然后加载到WKWebView:
webView.loadHTMLString(someHTMLString, baseURL: nil)