Wie kann ich erkennen, Wann ein UIWebView ist fertig Rendern (nicht laden)?

Weiß ich wenn es fertig geladen... (webViewDidFinishLoad), aber ich will

[webView.layer renderInContext:UIGraphicsGetCurrentContext()];

erstellen ein Bild aus der UIWebView. Gelegentlich erhalte ich das Bild vor der webView finishing rendering. Ich kann verwenden performSelector zu verzögern, die bekommen von dem Bild, aber die Höhe der Wartezeit ist willkürlich und spröde.

  • Ich habe genau dasselbe Problem. Ich mache renderInContext auf webViewDidFinishLoading und macht es den bisherigen Stand der web-Ansicht auf den Kontext. Das seltsame ist, dass das erste mal, dass ich das laden von Inhalten in der web-Ansicht, der screenshot ist richtig dargestellt. Es ist nur, nachdem die ersten Inhalte laden, es beginnt, zeigen die oben beschriebenen Verhalten
  • Ich glaube nicht, dass es ein guter Weg, dies zu tun. Ich habe versucht, Injektion einige javascript über stringByEvaluatingJavaScriptFromstring zu nennen, zurück zu meinem Obj-C-code, aber es war nicht zuverlässiger als eine willkürliche Verzögerung. 🙁
  • Ich schliesse mich. Ich mache eine verzögerte performSelector als tillerstarr beschreibt, in der die Frage, das ist eine Verschwendung von Zeit und liefert inkonsistente Ergebnisse. Ich bin zufällig zum ausführen von jQuery in meine UIWebView, und es hat eine "bereit" - Ereignis, das ausgelöst wird, und ist zuverlässiger sein soll, dass ein regulärer Javascript-onLoad. Ich denke, in der Theorie, man hätte die "bereit" - Ereignis auslösen irgendeiner Art von link activity, die würde Feuer webView:shouldStartLoadWithRequest:navigationType. Denkst du, dass das einen Versuch Wert?
InformationsquelleAutor tillerstarr | 2011-04-27
Schreibe einen Kommentar