调研了一下WKWebView如何检测首屏渲染的时间,经过阅读WebKit源码和尝试,发现这样可以(需要调用私有方法,可以base64加密一下):

// 注册
[self.webview performSelectorOnMainThread:@selector(_setObservedRenderingProgressEvents:) withObject:@(127) waitUntilDone:NO];

// 回调
- (void)_webView:(WKWebView *)webView renderingProgressDidChange:(int)progressEvents {
    // progressEvents == 64 表示首屏渲染结束
}