如何判断UIWebView何时完成渲染(未加载)?

til*_*arr 34 objective-c uiwebview ios

我知道它什么时候加载...(webViewDidFinishLoad),但我想用

[webView.layer renderInContext:UIGraphicsGetCurrentContext()];
Run Code Online (Sandbox Code Playgroud)

从UIWebView创建图像.偶尔我会在webView完成渲染之前获取图像.我可以使用performSelector来延迟图像的获取,但等待的数量是任意的和脆弱的.

ASP*_*ASP 2


使用 window.onload 或 jQuery $(document).ready 事件来触发 shouldStartLoad 回调怎么样?

就像是:

$(document).ready(function(){
    location.href = "app://do.something"
})
Run Code Online (Sandbox Code Playgroud)

并在你的 UIWebViewDelegate 中执行类似的操作:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    NSURL *url = request.URL;

    if([url.host isEqualToString:@"app"]){
        //maybe check for "do.something"
        //at this point you know, when the DOM is finished
    }
}
Run Code Online (Sandbox Code Playgroud)

使用此方法,您可以将每个可能的事件从 JS 代码转发到 obj-c 代码。

希望有帮助。代码示例是在浏览器中编写的,因此未经测试!;-)