WebView第一次加载能白屏,求解决方案
WebView第一次加载会白屏,求解决方案
代码如下,我是从MainActivity点击按钮跳转进去这个页面的,第一次加载时进度条完成后显示不出来页面,必须按返回键后再次加载才能显示出来,搞了半天了都不知道什么原因,求大神帮忙解决啊,烦死了!!
------解决方案--------------------
你把整个代码贴出来,有时间帮你调
代码如下,我是从MainActivity点击按钮跳转进去这个页面的,第一次加载时进度条完成后显示不出来页面,必须按返回键后再次加载才能显示出来,搞了半天了都不知道什么原因,求大神帮忙解决啊,烦死了!!
public class AnnounceActivity extends BaseActivity{
private static final int PROGRESS_ID = 0;
private ProgressDialog progressBar=null;
private AlumniApp app;
private WebView webView=null;
Button aBackButton;
private static final String url = "http://m.alumni.ecnu.edu.cn/alumni/pages/indexs_noheader#notice";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
app = (AlumniApp) getApplication();
setContentView(R.layout.announce_layout);
aBackButton = (Button) this.findViewById(R.id.announce_back_btn);
Button freshButton = (Button) this.findViewById(R.id.announce_fresh_btn);
webView = (WebView) this.findViewById(R.id.webview);
freshButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webView.goBack();
}
});
aBackButton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Intent aIntent = new Intent(getApplicationContext(), MainActivity.class);
aIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(aIntent);
}
});
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(false);
webView.getSettings().setPluginsEnabled(true);
//// webView.getSettings().setPluginState(PluginState.ON);
//
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
// //解决报Cannot call method 'getItem' of null at XXXX/build.js:6等错问题
webView.getSettings().setDomStorageEnabled(true);
// webView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);
progressBar = new ProgressDialog(this);
progressBar.setTitle("页面加载中,请稍候...");
progressBar.setMessage("Loading...");
// progressBar=ProgressDialog.show(this, "页面加载中,请稍候...", "Loading...");
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
progressBar.show();
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
if (progressBar.isShowing()) {
progressBar.dismiss();
}
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
//错误处理,弹出对话框显示
}
});
webView.setWebChromeClient(new WebChromeClient(){
@Override
public void onProgressChanged(WebView view, int newProgress) {
progressBar.setProgress(newProgress);
progressBar.setMessage("Loading..." + newProgress + "%");
super.onProgressChanged(view, newProgress);
}
});
loadUrl(url);
}
public void loadUrl(String url)
{
if(webView != null)
{
webView.loadUrl(url);
// progressBar=ProgressDialog.show(this, "页面加载中,请稍候...", "Loading...");
}
}
@Override
protected Dialog onCreateDialog(int id) {
if(id==PROGRESS_ID){
return ProgressDialog.show(this, null, "加载中,请稍后......");
}
return super.onCreateDialog(id);
}
@Override
protected void onResume() {
app.isStartSensor();
super.onResume();
}
@Override
protected void onPause() {
app.isStopSensor();
super.onPause();
}
}
------解决方案--------------------
你把整个代码贴出来,有时间帮你调