如何更改 WKWebView 文本颜色?

How to change WKWebView text color?

我有一个 ViewControllerWKWebView,我加载了我的 .html.css 文件,其中包含 webView 的文本。它看起来像 Apple Books 应用程序中阅读书籍的控制器。

do {
            guard let filePath = Bundle.main.path(forResource: "index", ofType: "html") 
                else {
                    print ("File reading error")
                    return
            }
            
            let headerString = "<meta name=\"viewport\" content=\"initial-scale=1.1\" />"
            let content =  try String(contentsOfFile: filePath, encoding: .utf8)
            let baseUrl = URL(fileURLWithPath: filePath)
            
            webView.loadHTMLString(headerString+content, baseURL: baseUrl)

        }
        catch {
            print ("File HTML error")
        }

另外,我有 4 个主题可以改变我 ViewController 的外观(白色、黑色、海军蓝和黄色,就像在 Apple Books 中一样)。我想在更改主题时更改 webView 中的文本颜色。怎么做?如何更改 webView 的颜色?

在您的 .html 文件中,您需要编写 JavaScript 函数(例如:changeColor)为您的 HTML 改变颜色元素。当您在 ViewController 中更改主题时,您需要使用 JavaScript 函数名称执行 callAsyncJavaScript 函数。

let web = WKWebView()
web.callAsyncJavaScript("javaScriptFumction", in: WKContentWorld)

WKWebView 具有 callAsyncJavaScript 函数的异步实现。