Я работаю над простым приложением для Android, которое загружает отдельный веб-сайт с использованием API уровня Android 8. Я кодирую с Java в Eclipse. Мне удалось показать ProgressDialog, когда пользователь щелкает ссылку на веб-странице в приложении, которое работает нормально.
Проблема, однако, заключается в том, что приложение загружается впервые и загружается самая первая веб-страница. Веб-страницы занимают некоторое время, и он просто показывает пустой белый экран, когда первая страница загружается и начинает показывать элементы (используя эмулятор Android для программирования). Я хотел бы отобразить тот же индикатор ProgressDialog во время этой загрузки первой страницы, но безуспешно в моих попытках.
Вот мой код ниже.
package com.TestWebView;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class TestWebView extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
WebView engine = (WebView) findViewById(R.id.web_engine);
WebViewClient myWebClient = new WebViewClient()
{
ProgressDialog pd = null;
// Override page so it's load on my view only
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
/*view.loadUrl(url);
return true;*/
//start the progress dialog
pd = ProgressDialog.show(TestWebView.this, "", "Loading...");
if (url.contains("maps.google.com") == true)
{
// Load new URL Don't override URL Link
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
return true;
}
return false;
}
@Override
public void onPageFinished(WebView view, String url){
pdHandler p = new pdHandler();
p.sendEmptyMessage(0);
}
class pdHandler extends Handler {
@Override
public void handleMessage(Message msg) {
if(pd != null)
{
pd.dismiss();
pd = null;
}
}
}
};
engine.getSettings().setJavaScriptEnabled(true);
engine.getSettings().setSupportZoom(true);
engine.getSettings().setBuiltInZoomControls(true);
engine.setWebViewClient(myWebClient);
engine.loadUrl("http://www.amazon.com/gp/aw/h.html");
}
}
Любое руководство приветствуется.
Спасибо.