我有一个应用程序,它显示启动页面并在 WebView 中加载 URL 时删除该启动页面。以下是我们用来移除启动页面的相关代码:
browser.setWebViewClient(new BrowserClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// Work around for WebView onPageFinished called twice
if (flag == true) {
browser.setVisibility(View.VISIBLE);
splashImage.setVisibility(View.INVISIBLE);
pageLoader.setVisibility(View.INVISIBLE);
} else {
flag = true;
}
}
});
Run Code Online (Sandbox Code Playgroud)
这段代码有效......除了它很慢。在网页加载很久之后,启动页面需要很长时间才能删除。
是否有任何关于如何可靠地检测 WebView 何时加载页面的提示?过去几天我一直在研究这个,我似乎无法想出任何可靠的东西。
我看到的最有希望的是以下内容,但将此代码放在 Android 控制台中会引发错误:
@Override
public void invalidate() {
super.invalidate();
if (getContentHeight() > 0) {
// WebView has displayed some content and is scrollable.
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
编辑:有很多答案提出 onPageFinished,甚至有人将其标记为重复,并带有指向使用 onPageFinished 的解决方案的链接。伙计们,我们已经在使用 onPageFinished 了。由于不可靠,我们正在寻找 onPageFinished 的替代方案。
如果您需要通过使用此 Web 客户端的加载页面进度来实现此目的,您也可以使用它。
webView.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
Log.e("progress", ""+progress);
if (progress == 100) { //...page is fully loaded.
// TODO - Add whatever code you need here based on web page load completion...
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5716 次 |
| 最近记录: |