WebViewWarmupper 0.1.1

WebViewWarmupper 0.1.1

TomoyaHayakawa 维护。



  • Tomoya Hayakawa

WebViewWarmupper

预热 WKWebView 辅助程序。

为什么

WKWebView 初始化非常缓慢。在 UI 线程不忙的时候预先初始化可以使其更好。

安装

Cocoapods

pod 'WebViewWarmupper'

Carthage

github "simorgh3196/WebViewWarmupper"

使用

let warmupper = WebViewWarmupper(maxSize: 3)

// warmup a WKWebView instance.
warmupper.warmup()

// warmup some WKWebView instances.
warmupper.warmup(2)

// warmup WKWebView instance up to max size.
warmupper.warmupUpToSize()

let webView = warmupper.getView()

[高级] 自定义 WKWebView 初始化

class MyWebViewWarmupper: ViewWarmupper<WKWebView> {

    init() {
        super.init(maxSize: 3) {
            let script = WKUserScript(
              source: "#custom_javascript",
              injectionTime: .atDocumentStart,
              forMainFrameOnly: false)
            let contentController = WKUserContentController()
            contentController.addUserScript(script)
            let configuration = WKWebViewConfiguration()
            configuration.userContentController = contentController

            return WKWebView(frame: .zero, configuration: configuration)
        }
    }
}

性能

检查示例项目的性能

预热过的 WKWebView 共享 WKWebView 简单的 WKWebView 简单的 UIWebView
1 0.05490398406982422 0.07083094120025635 0.7591549158096313 0.8732810020446777
2 0.029172897338867188 0.05423104763031006 0.45792603492736816 0.02630794048309326
3 0.03314995765686035 0.023260951042175293 0.3551570177078247 0.021090030670166016
4 0.030402064323425293 0.02096700668334961 0.36775505542755127 0.021376967430114746
5 0.030902981758117676 0.02869093418121338 0.3720470666885376 0.020707011222839355
6 0.02951192855834961 0.02883601188659668 0.48676598072052 0.021302103996276855
7 0.0360109806060791 0.0317530632019043 0.4646350145339966 0.02109396457672119
8 0.030125975608825684 0.022431015968322754 0.39225101470947266 0.018939971923828125
9 0.041404008865356445 0.022022008895874023 0.44484400749206543 0.027421951293945312
10 0.03253495693206787 0.026466012001037598 0.4506809711456299 0.020102977752685547
平均值 0.034811973571777344 0.03294889926910401 0.4551217079162598 0.10716239213943482