如何在 WebView 中更改字体大小 (Swift 5)

How to change font size in the WebView (Swift 5)

我将文本加载到 WebView。我需要更改字体及其大小。 我使用这段代码,但字体太小了。不是15分。我的问题是什么?

private lazy var webView: WKWebView = {
        let contentController = WKUserContentController()
        
        let webConfig = WKWebViewConfiguration()
        webConfig.userContentController = contentController
        webConfig.dataDetectorTypes = [.phoneNumber, .link]
        
        let web = WKWebView(frame: .zero, configuration: webConfig)
        web.navigationDelegate = self
        return web
    }()

    ...
    let fontName =  "PFHandbookPro-Regular"
    let fontSize = 15
    let fontSetting = "<span style=\"font-family: \(fontName);font-size: \(fontSize)\"</span>"
    webView.loadHTMLString(fontSetting + myHTMLString, baseURL: nil)

您拥有的 span 标签实际上不会做任何事情,因为它会立即打开和关闭 -- 它不包含任何内容。

假设您的 HTML 字符串还没有完整的 <head><body> 标签,此解决方案有效:

let header = """
        <head>
            <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
            <style>
                body {
                    font-family: "Avenir";
                    font-size: 24px;
                }
            </style>
        </head>
        <body>
        """
webView.loadHTMLString(header + myHTMLString + "</body>", baseURL: nil)

这样做的第一件重要事情是设置视口,使页面的比例适合设备(这是您的文字太小的主要原因)。然后,它还向您展示了如何为 HTML.

的正文设置字体系列和字体大小

如果你的 HTML 标记已经有 <head><body> 标签,你可能想通过注入 javascript。您可以在此处查看有关执行此操作的一些信息:WKWebView equivalent for UIWebView's scalesPageToFit