如何使用 WKWebView 取消和增加字体大小?

How to de- and increase the font size with WKWebView?

在 Safari 中,您可以增大和减小字体大小。如何使用WKWebView实现同样的效果?

假设您有 fontUpdatedHeight 整数,它可以为您提供准确的字体大小。

像这样创建字符串:

NSString *jsString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '%lu%%'",(unsigned long)fontUpdatedHeight];

并执行 NSString

[self.WKWebView stringByEvaluatingJavaScriptFromString:jsString];

Inna 建议的代码曾经有效,但从 iOS10.3 起就停止了。我做了一些研究,发现我们需要对它做一点改动,只是将“%%”改为单个“%”。

所以JS代码应该是:

let js = "document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust='\(fontSize)%'"

我从 Apple Developer 论坛获得了此信息。 https://forums.developer.apple.com/thread/51079

Swift 5 解法:

实施 WKNavigationDelegate 并在 viewDidLoad 中:

webView.navigationDelegate = self

然后在 didFinish 中:

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    let js = "document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust='200%'"//dual size
    webView.evaluateJavaScript(js, completionHandler: nil)
}