Как настроить WebChromeClient для открытия новой страницы в том же представлении?

Я загружаю URL-адрес в WebView, но, когда пользователь нажимает на какую-то кнопку, новый URL-адрес загружается в браузер Android не в моем веб-просмотре. Что мне делать?

Спасибо заранее.

Ответ 1

Вы должны использовать как WebViewClient, так и WebChromeClient.

WebChromeClient позволяет, например, получить ход загрузки, тогда как WebViewClient позволит вам переопределить shouldOverrideUrlLoading().

На странице веб-страницы:

webview.setWebChromeClient(new WebChromeClient() {
   public void onProgressChanged(WebView view, int progress) {
     // Activities and WebViews measure progress with different scales.
     // The progress meter will automatically disappear when we reach 100%
     activity.setProgress(progress * 1000);
   }
 });
 webview.setWebViewClient(new WebViewClient() {
   public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
     Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
   }
 });

Ответ 2

webchromeClient, похоже, не обладает этой способностью. Кажется глупым, что WebViewClient может и WebChromeClient не может.