首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >App - Loading中的网站

App - Loading中的网站
EN

Stack Overflow用户
提问于 2012-12-12 07:36:55
回答 2查看 102关注 0票数 0

我正在开发一个Android应用程序,它简单地将一个网站的移动版本包装在一个本地应用程序容器中。

目前我调用(示例):

代码语言:javascript
复制
    wv.loadUrl("http://www.websitehere.com/");

我已经导出了整个项目并在我的手机上进行了测试,当在应用程序中加载一个新页面时,它需要几分钟,但是不在浏览器上没有加载指示器,所以它是当前页面上的一个静止屏幕几分钟(取决于互联网速度),而新页面加载。

什么是最好的方式来实现一个加载指示器,使用户知道一个新的页面实际上正在加载?

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

代码语言:javascript
复制
    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");
    }
    }
EN

回答 2

Stack Overflow用户

发布于 2012-12-12 07:42:42

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

代码应该如下所示:

代码语言:javascript
复制
ProgressDialog progressDialog = ProgressDialog.show(this, "", "Loading...");
wv.loadUrl("http://www.yourwebsite.com");
progressDialog.dismiss();

编辑:每点击一个新的url都会有新的代码

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

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

编辑:

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

代码语言:javascript
复制
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。

票数 0
EN

Stack Overflow用户

发布于 2012-12-12 07:45:37

如果你的网站是基于html的,而不是服务器端(asp/php等),你可以在应用程序中打包网站,这样就不需要互联网了。这样做的缺点是更新2个网站。

或者,您可以将加载脚本(javascript)添加到网站本身。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13830342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档