ページの読み込み中に、ある種のビジーインジケーターが必要です。私のインジケーターはスプラッシュ画面のように全画面表示になります。これは、通常のブラウザとは異なり、AndroidWebViewが読み込みを開始する前にページを白く空白にするためです。
簡単な解決策が提案されるかもしれません。たとえば、loadingをtrueにonPageStarted()
設定し、falseをに設定しますonPageFinished()
。
@Override
public void onPageFinished(WebView view, String url) {
setLoading(false);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
setLoading(true);
}
これに伴う問題は、私がロードしているWebサイトが、シングルクリックで複数の開始/終了サイクルをもたらすことです。多分これはリダイレクト、またはiframeです。よくわかりませんが、結果として「ビジー」インジケーターが不穏に点滅します。
それを考慮して、別のアイデアは、ページのロードのカウントを維持することです-でインクリメントonPageStarted()
およびデクリメントしonPageFinished()
ます。このようなもの、
private int loadingCount = 0;
@Override
public void onPageFinished(WebView view, String url) {
loadingCount--;
if (loadingCount == 0) {
setLoading(false);
}
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if (loadingCount == 0) {
setLoading(true);
}
loadingCount++;
}
私はこの問題に遭遇しています:開始されたページ/終了したページが一致していません。正確な理由はわかりませんが、リダイレクトを使用する必要があると思います。
何か案は?