【发布时间】:2016-03-11 20:43:55
【问题描述】:
在 Safari 中,您可以增大和减小字体大小。 WKWebView 怎样才能达到同样的效果?
【问题讨论】:
在 Safari 中,您可以增大和减小字体大小。 WKWebView 怎样才能达到同样的效果?
【问题讨论】:
假设您有 fontUpdatedHeight 整数,它可以为您提供准确的字体大小。
只需创建这样的字符串:
NSString *jsString = [[NSString alloc] initWithFormat:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '%lu%%'",(unsigned long)fontUpdatedHeight];
并执行 NSString
[self.WKWebView stringByEvaluatingJavaScriptFromString:jsString];
【讨论】:
stringByEvaluatingJavaScriptFromString:jsString 方法;那是 UIWebView。
Inna 建议的代码过去可以工作,但从 iOS10.3 开始停止工作。我做了一些研究,发现我们需要对其稍作改动,只需将“%%”更改为单个“%”即可。
所以JS代码应该是:
let js = "document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust='\(fontSize)%'"
我从 Apple 开发者论坛获得了此信息。 https://forums.developer.apple.com/thread/51079
【讨论】:
斯威夫特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)
}
【讨论】: