我将UIWebView改为WKWebView,但是,使用相同的html,WKWebView中的字体看起来比UIWebView中的小.我不希望这种情况发生,那么有没有办法避免这种变化?

推荐答案

最后,我通过添加一个html字符串解决了这个问题:

  • For Objective-C:
NSString *headerString = @"<head><meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no'></head>";
[self.webView loadHTMLString:[headerString stringByAppendingString:yourHTMLString] baseURL:nil];
  • For Swift:
let headerString = "<head><meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no'></head>"
webView.loadHTMLString(headerString + yourHTMLString, baseURL: nil)

此外,如果您想加载url而不是html,可以try :

private var isInjected: Bool = false
webView.navigationDelegate = self
// MARK: - WKNavigationDelegate
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    if isInjected == true {
        return
    }
    self.isInjected = true
    // get HTML text
    let js = "document.body.outerHTML"
    webView.evaluateJavaScript(js) { (html, error) in
        let headerString = "<head><meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no'></head>"
        webView.loadHTMLString(headerString + (html as! String), baseURL: nil)
    }
    
}

Swift相关问答推荐

在视图中设置所有变量

符合协议要求委托变量在 ios13 中可用

如何在 SwiftUI 中打开 ImagePicker?

xcrun:错误:无法找到实用程序“xctest”,不是开发人员工具或 PATH

如何在 Swift 中访问命令行参数?

Swift 中的单元测试致命错误

SwiftUI TextField 最大长度

Swift 包管理器 - UIKit 依赖

如何在 SwiftUI 中删除列表的左右填充?

iOS13导航栏大标题不覆盖状态栏

RunLoop 与 DispatchQueue 作为调度程序

SwiftUI:发送邮箱

SwiftUI:将多个 BindableObjects 放入环境

如何使用 SwiftUI 获得动态视图列表

在 SwiftUI 中显示行/分隔符视图

Xcode忽略导入

Xcode 构建错误 - 多个命令生成 .o,目标“ProjectCoreData”具有两次列出的 Swift 源文件的编译命令

UITabBar 项目在 iOS 12.1 上跳转后退导航

Swift :反斜杠点“\”是什么意思?意思是?

为什么包装 os_log() 会导致无法正确记录双打?