什么是Android WebViewClient中的onPageFinished?

Ste*_*ven 17 android webview webviewclient

我正在尝试在我的网页加载完成后在Android WebView上执行操作.我设置我的WebView以使用WebViewClient来使用onPageFinished事件回调.但是,经过一些测试后,似乎还没等到页面上的所有JS都在我的onPageFinished代码触发之前完成加载.

Google文档说明了这一点:

public void onPageFinished (WebView view, String url)
Run Code Online (Sandbox Code Playgroud)

在API级别1中添加通知主机应用程序页面已完成加载.仅对主框架调用此方法.调用onPageFinished()时,渲染图片可能尚未更新.要获取新图片的通知,请使用onNewPicture(WebView,Picture).

参数

view正在启动回调的WebView.

url页面的网址.

1)onPageFinished只等待DOM加载吗?

2)有没有办法检测页面上的任何JS何时完成?如果是这样,我应该使用什么?

我没有在WebViewClient中看到任何可能用于此目的的内容.我不想添加延迟,因为我的用户可以在EDGE或LTE上.

小智 7

您需要从WebChromeClient实现回调.onPageFinished()是由WebViewClient提供的API.还有另一个名为WebChromeClient的接口,它提供您正在寻找的进度信息:

http://developer.android.com/reference/android/webkit/WebChromeClient.html#onProgressChanged(android.webkit.WebView,int)

打开上面的链接并查找onProgressChanged(WebView视图,int newProgress) - 'newProgress'变量为您提供已完成的页面加载百分比.当它达到100时,你有一个有效的页面.onPageFinished()无法可靠地用于此(由于服务器端重定向等)

我不知道"当页面上的JS完成时"是什么意思.也许你可以澄清你的意思?