gpt4 book ai didi

javascript - 在 ios 中从 Webview 更改字体

转载 作者:行者123 更新时间:2023-11-28 20:57:00 24 4
gpt4 key购买 nike

我的应用程序通过 Url 加载 WebView,而不是 html 字符串。我尝试了几种更改字体的选项,但没有用。我在下面使用这种方法。请提供一些帮助,抱歉我的英语不好!

NSString *fontFamilyStr = @"document.getElementsByTagName('body')[0].style.fontFamily='PingFangSC-Light';";
[webView stringByEvaluatingJavaScriptFromString:fontFamilyStr];

最佳答案

我不太确定你想在代码中的什么地方调用 stringByEvaluatingJavaScriptFromString,你应该在 webView 完成加载后调用它,因为你正在尝试修改 UI HTML 页面(通过更改字体) 如果您甚至在网页完成加载之前就尝试运行 JavaScript 命令,尽管您的 JavaScript 代码在运行,但它无法修改其组件的属性,因为它们可能尚未完成呈现。

因此,

第 1 步:

让您的 ViewController 成为您的 webViewnavigationDelegate

webView.navigationDelegate = self

第 2 步:

将扩展添加到您的 ViewController 并确认 WKNavigationDelegate

extension ViewController : WKNavigationDelegate {
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
let changeFontFamilyScript = "document.getElementsByTagName(\'body\')[0].style.fontFamily = \"Impact,Charcoal,sans-serif\";"
webView.evaluateJavaScript(changeFontFamilyScript) { (response, error) in
debugPrint("Am here")
}
}
}

第 3 步:

观察在 "document.getElementsByTagName(\'body\')[0].style.fontFamily =\"中使用 '\' 来转义特殊字符,如 singleQuote (') 和 doubleQuotes (") ,Charcoal,sans-serif\";" 你在上面的代码中缺少它

第 4 步:

如果您的网页找不到指定的 FontFamily,请确保您提供了正确的 FontaFamilies 和回退选项(查看我指定的 3 个字体名称 Impact、Charcoal、sans-serif)

O/P

没有 NavigationDelegate(没有运行 javaScript)

enter image description here

应用字体后

enter image description here

希望对你有帮助

关于javascript - 在 ios 中从 Webview 更改字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51298850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com