Android使用WebView不加载页面(页面空白)
先上代码
- 使用ButterKnife进行注解
public class MainActivity extends AppCompatActivity {
public static final String TAG = "MainActivity";
@Bind(R.id.wv)
WebView wv;
@Bind(R.id.bt)
Button bt;
private boolean isLoadUrl = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
initData();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
private void initData() {
}
@OnClick(R.id.bt)
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.bt:
wv.loadUrl("https://www.baidu.com");
Log.i(TAG, "initData: ");
wv.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.d("MainActivity ","shouldOverrideUrlLoading"+ url);
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if (!isLoadUrl) {
isLoadUrl = true;
view.loadUrl(url);
}
super.onPageStarted(view, url, favicon);
}
@Override
public void onPageFinished(WebView view, String url) {
Toast.makeText(MainActivity.this, "网页加载完毕", Toast.LENGTH_SHORT).show();
Log.d("MainActivity ", "onPageFinished 网页加载完毕"+url);
super.onPageFinished(view, url);
}
});
break;
default:
break;
}
}
}
再说问题
使用WebView的过程中,经常发现打开的网页是个空的,并且会在Monitor中看见大量报错就像这个样子。
不必慌,请对这些报错视而不见。
网页显示为空的原因,可能只是“你的网络太慢了,并且没有进度条来展示当前页面的加载进度,导致开发者产生WebView加载网页失败的错觉”
可以在适当位置添加进度展示,就像上面的代码展示的那样。