我将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相关问答推荐

启用完整并发判断以及如何解决警告

如何使用RxSwift根据数据数绘制UICollectionView单元格

当我点击模拟器中的文本字段时,UIKit CLLocationButton崩溃

如何使用swift宏生成一个带有关联值的枚举?

SwiftUI正在初始化不带状态变量的绑定变量

按下一步后无法让文本字段切换焦点

无法创建MKAssociateRegion对象

关闭 SwiftUI TabView 中的子视图

按数组大小进行类型判断?

UIImage和UIimage.pngData返回两个不同的图像

暂停我的 AR 会话并清除变量和锚点的功能

Swift-SceneKit-无法从art.scnassets加载.scn文件

如何自己实现同一个 iOS 16 锁屏圆形小部件?

为什么 String.contains 在我导入 Foundation 时表现不同?

RxSwift 事件触发了两次

SwiftUI Observed Object 在发布值更改时未更新

如何让 UIKit 挤压你的视图,使其适合屏幕

为什么swiftui中的导航视图栏那么大?

Swift 5.0 编译器无法导入使用 Swift 4.2.1 编译的模块

如何交换快速数组中的元素?