Чтобы создать webView недавно, я использовал webViewClient. mWebView.setWebViewClient(new WebViewClient());
Android progressbar внутри WebView
Но мне нужно реализовать индикатор выполнения. Когда пользователь нажимает на ссылку, этот индикатор выполнения будет виден. После завершения страницы индикатор progressbar будет скрыт, а webView будет виден. Что касается this и this, я добавил WebChromeClient. Но он загружает первый URL-адрес, но когда я нажимаю кнопку внутри своей веб-страницы, открывается диалоговое окно и предлагается открыть URL-адрес с каким-либо приложением.
Я прочитал, что должен переопределить метод shouldOverrideUrlLoading()
. но я получаю сообщение об ошибке «shouldOverrideUrlLoading» не может быть переопределен для WebChromeClient
.
Я был бы рад, если бы вы могли привести пример, который имеет progressbar и webView, также открывает новые URL-адреса внутри одного и того же веб-браузера.
public class WebActivity extends Activity {
WebView mWebView;
ProgressBar mProgress;
Context mContext;
ProgressBar mProgressBar;
@Override
public void onCreate(Bundle savedInstanceState) {
this.mContext = getApplicationContext();
super.onCreate(savedInstanceState);
setContentView(R.layout.web);
mWebView = (WebView) findViewById(R.id.webview);
mWebView.setWebChromeClient(new myWebChromeClient());
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setUserAgentString("myApp");
mProgressBar = (ProgressBar) findViewById(R.id.webProgressBar);
mProgressBar.setMax(100);
}
public class myWebChromeClient extends WebChromeClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
@Override
public void onProgressChanged(WebView view, int newProgress) {
//WebActivity.this.setValue(newProgress);
super.onProgressChanged(view, newProgress);
}
}
}
Продления и WebChromeClient, и WebViewClient - отличная идея. Таким образом, я могу показать как процент прогресса, так и скрыть прогресс на страницеPageFinished. Благодарю. – trante