Я пытаюсь переопределить загрузку URL-адреса при нажатии на ссылку в приложении WebView.Проблема с Android WebView при переопределении URL-адреса Загрузка
Страница загружается, но WebView сохранит последнюю позицию прокрутки и размер содержимого.
Есть ли какой-то параметр, который я забыл установить в WebView для сброса размера содержимого и положения прокрутки при следующей загрузке?
Вот как я использую его:
@SuppressLint("SetJavaScriptEnabled")
@AfterViews
protected void afterViews() {
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebClient());
webView.setWebChromeClient(new ChromeClient());
webView.loadUrl(url);
}
public class WebClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
boolean isValidEmail = url.startsWith("mailto:") && Patterns.EMAIL_ADDRESS.matcher(url.substring("mailto:".length())).matches();
boolean isValidPhone = url.startsWith("tel:") && Patterns.PHONE.matcher(url.substring("tel:".length())).matches();
if (url.startsWith("about:")) {
return super.shouldOverrideUrlLoading(view, url);
}
if (isValidEmail) {
Intent sendIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse(url));
startActivity(Intent.createChooser(sendIntent, ""));
} else {
if (isValidPhone) {
Intent dialIntent = new Intent(Intent.ACTION_DIAL, Uri.parse(url));
startActivity(Intent.createChooser(dialIntent, ""));
} else {
WebViewActivity.this.setPageTitle(url);
webView.loadUrl(url);
}
}
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
//..
}
}
public class ChromeClient extends WebChromeClient {
@Override
public void onProgressChanged(WebView view, int progress) {
//...
}
}
Спасибо.
I сделал, без эффекта. Другие идеи? –
Я обновил свой ответ ... Попробуйте добавить некоторую задержку на onPageFinished, поскольку это может не работать всегда, если на страницу требуется некоторое время для загрузки –