首页 > 解决方案 > 为什么我的 HTML 字符串在 WebView iOS 中没有显示正确的 html 标签?

问题描述

所以我有这个带有 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字符串

如你所见,句子“Kebijakan Privasi”有<h3>元素,句子“Pengumpulan Informasi Pribadi”有<h4>元素

所以我希望“Kebijakan Privasi”(h3)的大小大于““Pengumpulan Informasi Pribadi”(h4)

但这是我运行应用程序时的结果:

在此处输入图像描述

如您所见,“Kebijakan Privasi”似乎比“P​​engumpulan Informasi Pribadi”小,我希望反过来。

我拥有的 HTML 字符串没有样板 HTML 标签,我的意思是

< ! DOCTYPE HTML >、<head> 和 <body>

就像我在顶部分享的字符串一样。它有效果吗?因为如果我从这里看到视频教程,它似乎需要样板 HTML 标记

这是我使用的简化代码,我使用的是WKWebView类:

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()
    }

}

那么如何解决这个问题?也许你对我有更好的解决方案。

标签: ioswkwebview

解决方案


我终于找到了答案。我不是网络开发人员,所以看来您还必须将 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)                                          

推荐阅读