Ale*_*sky 5 android android-webview
是否可以监听WebView页面加载完全完成然后捕获加载页面的截图?
我尝试了两种方法,但它们都不起作用:
使用WebViewClient
和onPageFinished(WebView view, String url)
.
它不起作用(并在文档中描述)因为图片可能还没准备好
使用WebView.PictureListener
和onNewPicture(WebView view, Picture picture)
它也没有解决问题,因为这种方法调用不确定的时间.第一次,图片通常只包含部分页面内容.我不知道如何确定当前的呼叫是最后一个页面.
我想要注意的是,问题是要找到合适的时机来制作屏幕截图,而不是如何做到这一点.
[请注意,自从我回答这个问题以来,onNewPicture已被弃用(请参阅http://developer.android.com/reference/android/webkit/WebView.PictureListener.html以及"不推荐使用此方法"对应用程序开发人员意味着什么).遗憾的是,没有关于替换它的内容或支持的API级别的信息.我想这意味着你使用它需要你自担风险.]
我认为你是正确的onNewPicture是捕获加载的WeView页面截图的正确位置,但也纠正了很难知道何时实际进行捕获.
看来,只要有任何绘图,WebView就会调用onNewPicture.例如,当搜索栏处于键盘输入模式且光标轻弹时,它会重复调用onNewPicture.类似地,对于某些网页(例如www.yelp.com/nyc),即使在页面完成绘制之后,它也会反复调用onNewPicture,这可能是因为搜索框中闪烁的光标.但在另一个极端,它只会调用onNewPicture一次(例如,如果用户放下iGoogle项目).
那么没有简单的规则吗?我们采取的方法是
不漂亮,但它很有效,极少数情况下它会捕获相同的图片两次 - 而且没有它无法捕捉图片的情况.
归档时间: |
|
查看次数: |
5349 次 |
最近记录: |