如何在 WKWebView swift 5 中更改字体大小?

Posted

技术标签:

【中文标题】如何在 WKWebView swift 5 中更改字体大小?【英文标题】:How do i change font size in WKWebView swift 5? 【发布时间】:2019-12-02 11:31:26 【问题描述】:

我使用 UIWebview 和此代码,它在 ios 13 之前可以正常工作。由于 UIWebview 已被弃用,它在 iOS 13 中不起作用。我该如何使用 WKWebView

func changedFont(size: Int)
    let jsString = "document.getElementsByTagName('body')[0].style.fontSize='\(size)px'"
    webView.stringByEvaluatingjavascript(from: jsString)

【问题讨论】:

你可以试试链接***.com/a/46000849/2641380的答案 【参考方案1】:

试试这个

self.webView.loadhtmlString("<html><body><meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0,Proxima Nova-Regular\">\(content)</body></html>", baseURL: nil)

【讨论】:

我使用此代码,不显示文本,仅显示图像 webView.loadHTMLString((post?.content!.rendered)!, baseURL: nil) webView.scrollView.isScrollEnabled = false【参考方案2】:

试试这个。当您有多种字体大小并且您为所有字体设置了相同的字体大小时,下面的代码将起作用。

func replaceFontSizes(withSize fontSize: Float, in replaceString: String?) -> String? 
var replaceString = replaceString
var r1 = (replaceString as NSString?)?.range(of: "font-size:")
while r1?.location != NSNotFound 

    let strSub = (replaceString as NSString?)?.substring(from: r1?.location ?? 0)
    var arrStr: [AnyHashable]?

    if strSub?.contains("pt") ?? false 
        arrStr = strSub?.components(separatedBy: "pt")
     else if strSub?.contains("px") ?? false 
        arrStr = strSub?.components(separatedBy: "px")
    

    let strReplace = arrStr?[0] as? String

    replaceString = replaceString?.replacingOccurrences(of: strReplace ?? "", with: String(format: "font@@-@@size:%.2f", fontSize))

    r1 = (replaceString as NSString?)?.range(of: "font-size:")


replaceString = replaceString?.replacingOccurrences(of: "font@@-@@size:", with: "font-size:")
return replaceString

【讨论】:

以上是关于如何在 WKWebView swift 5 中更改字体大小?的主要内容,如果未能解决你的问题,请参考以下文章

Swift 4/5 设置将代理添加到 WKWebview

Swift 5 禁用从 WKWebView 到不同应用程序的重定向

如何在swift 4中从WKWebView中的网页中删除DIV标签?

如何在 Swift 3 的 WKWebView 中注入 javascript

如何使用 swift 在 WKWebView 的页面中间显示活动指示器?

如果没有在 Swift 中加载 URL,如何使 WKWebView 不可滚动?