Я хочу получить глубину WebView's
объект в Android
. Но я не могу найти, поэтому я разрабатываю, используя onPageStarted
и onPageFinished
.Как получить глубину WebView в Android?
boolean mIsInProgress = false;
int depth = 0;
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if(!mIsInProgress) {
depth++;
}
}
@Override
public void onPageFinished(WebView view, String url) {
if(mIsInProgress) {
mIsInProgress = false;
}
}
});
И это метод уменьшения глубины при нажатии на кнопку возврата оборудования.
private void moveBack(){
if(!mIsInProgress) {
if (mWebView.canGoBack()) {
mWebView.goBack();
depth--;
} else if (mActivity != null) {
mActivity.finish();
}
mIsInProgress= true;
}
}
Во-первых, я думаю, что это действительно хорошо работает. Но onPageStarted
и onPageFinished
имеет сроков выпуска.
- WebView имеет 1 глубина.
- Перемещение страницы через любую ссылку.
- Назад -> Вызов
onPageStarted
.- Перемещение страницы по любой ссылке, прежде чем звонить
onPageFinished
. -> ВызовonPageStarted
.- Адрес
onPageFinished
.
Это не был вызван в onPageFinished
между 3 и 4 стадии стадии, так что не может увеличить глубину в 4 стадии. (Но мне нужно mIsInProgress
переменная причина onPageStarted
иногда называется дважды.)
Как я могу получить глубину WebView точно?