我正在开发一款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");
}
}
答案 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)。