xml 文件
<ProgressBar android:id="@+id/progress_horizontal"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="10dip"
android:max="100"
android:progress="50" />
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
private WebView webView;
private ProgressBar progressBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.simple_web);
webView = (WebView)this.findViewById(R.id.webView);
progressBar = (ProgressBar)this.findViewById(R.id.progress_horizontal);
//覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
view.loadUrl(url);
return true;
}
});
//启用支持javascript
WebSettings settings = webView.getSettings();
//如果访问的页面中有Javascript,则webview必须设置支持Javascript
settings.setJavaScriptEnabled(true);
//不使用缓存
settings.setCacheMode(WebSettings.LOAD_NO_CACHE);//webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
// TODO Auto-generated method stub
Log.e("newProgress", ""+newProgress);
if (newProgress == 100) {
// 网页加载完成
progressBar.setProgress(100);
progressBar.setVisibility(View.GONE);//INVISIBLE
} else {
// 加载中
progressBar.setVisibility(View.VISIBLE);
progressBar.setProgress(newProgress);
if(progressBar.getProgress()==100){//new web url ,set value 0
progressBar.setProgress(0);
}
}
}
});
//加载资源
webView.loadUrl("http://wap.baidu.com");//file:///android_asset/example.html
}
//如果希望浏览的网页后退而不是退出浏览器,需要WebView覆盖URL加载,让它自动生成历史访问记录,那样就可以通过前进或后退访问已访问过的站点。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode==KeyEvent.KEYCODE_BACK){
if(webView.canGoBack()) {
webView.goBack();//返回上一页面
return true;
}else{
finish();//退出程序
}
}
return super.onKeyDown(keyCode, event);
}
}