网站包含在App中 - 正在加载

时间:2012-12-11 23:36:55

标签: android eclipse

我正在开发一款Android应用程序,它只是将一个网站的移动版本包装在本机App容器中。

目前我打电话给(例):

    wv.loadUrl("http://www.websitehere.com/");

我已导出整个项目并在我的手机上进行了测试,当在App中加载新页面时需要一些时间,但是没有在浏览器上没有加载指示器,所以它是一个静止屏幕新页面加载时,当前页面片刻(取决于网速)。

实现加载指示器的最佳方法是什么,以便用户知道新页面是否正在加载?

编辑:加载已添加,但仅适用于应用的初始页面加载。

    public class Main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    final ProgressDialog pd = ProgressDialog.show(this, "Page is", "Loading...",true);
    WebView wv = (WebView)findViewById(R.id.my_webview);
    wv.setWebViewClient(new WebViewClient() {

@Override
public void onPageFinished(WebView view, String url) {
    if(pd.isShowing()&&pd!=null);
    {
        pd.dismiss();
    }
}

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
pd = ProgressDialog.show(this, "Page is", "Loading...", true);
    view.loadUrl(url);
    return true;
    }
    });
    wv.loadUrl("http://www.websitehere.com");
    }
    }

2 个答案:

答案 0 :(得分:0)

您可以在加载网站之前启动ProgressDialog,并在加载完成后将其关闭。

代码看起来像这样:

ProgressDialog progressDialog = ProgressDialog.show(this, "", "Loading...");
wv.loadUrl("http://www.yourwebsite.com");
progressDialog.dismiss();

编辑:点击每个新网址的新代码

您应该将此添加到WebViewClient,并使(ProgressDialog)pd成为成员变量。

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    pd = ProgressDialog.show(this, "Page is:", "Loading...",true);
    view.loadUrl(url);
    return true;
}

编辑:

您应该将ProgressDialog pd设为成员变量。

public class Main extends Activity {

private ProgressDialog pd;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    pd = ProgressDialog.show(this, "Page is", "Loading...",true);
    WebView wv = (WebView)findViewById(R.id.my_webview);
    wv.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
            if(pd.isShowing()&&pd!=null);
            {
                pd.dismiss();
            }
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            pd = ProgressDialog.show(Main.this, "Page is", "Loading...", true);
        }
    });
    wv.loadUrl("http://www.websitehere.com");
}
}

编辑:使用onPageStarted。

答案 1 :(得分:0)

如果您的网站是基于HTML而不是服务器端(asp / php等),您可以在应用程序中打包网站,因此不需要互联网。下面是更新2个网站。

或者,您可以在网站上添加加载脚本(javascript)。