package com.cnblogs.android; import com.cnblogs.android.utility.NetHelper; import android.graphics.Bitmap; import android.os.Bundle; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.view.WindowManager; import android.view.View.OnClickListener; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Button; import android.widget.ImageButton; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; /** * ��������������ã� * @author walkingp * @date:2011-12 * */ public class WebActivity extends SuperView { WebView wv; ProgressBar web_progressBar; ImageButton btnRefresh; private Button button_back;//���� String url; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.web_layout); //��ֹ���� getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); //���粻���� if(!NetHelper.networkIsAvailable(getApplicationContext())){ Toast.makeText(getApplicationContext(), R.string.sys_network_error, Toast.LENGTH_SHORT).show(); return; } BindControls(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK){ if(wv.canGoBack()){ wv.goBack(); }else{ WebActivity.this.finish(); } } return false; } /** * ���¼� */ private void BindControls(){ url=getIntent().getStringExtra("url"); String title=getIntent().getStringExtra("title"); TextView txtWebTitle=(TextView)findViewById(R.id.txtWebTitle); txtWebTitle.setText(title); web_progressBar=(ProgressBar)findViewById(R.id.web_progressBar); wv=(WebView)findViewById(R.id.bookWebview); wv.getSettings().setJavaScriptEnabled(true);//����JS wv.setScrollBarStyle(0);//���������Ϊ0���Dz������������ռ䣬��������������ҳ�� wv.setWebViewClient(new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } public void onPageStarted(WebView view, String url, Bitmap favicon) { Log.d("WebView","onPageStarted"); super.onPageStarted(view, url, favicon); web_progressBar.setVisibility(View.VISIBLE); } public void onPageFinished(WebView view, String url) { Log.d("WebView","onPageFinished "); super.onPageFinished(view, url); web_progressBar.setVisibility(View.GONE); } }); //ˢ�� btnRefresh=(ImageButton)findViewById(R.id.web_refresh_btn); btnRefresh.setOnClickListener(new OnClickListener(){ public void onClick(View v) { loadurl(wv,url); } }); //���� button_back=(Button)findViewById(R.id.web_button_back); button_back.setOnClickListener(new OnClickListener(){ public void onClick(View v) { if(wv.canGoBack()){ wv.goBack(); }else{ WebActivity.this.finish(); } } }); loadurl(wv,url);//������ҳ } final class MyWebViewClient extends WebViewClient{ public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } public void onPageStarted(WebView view, String url, Bitmap favicon) { //���粻���� if(!NetHelper.networkIsAvailable(getApplicationContext())){ Toast.makeText(getApplicationContext(), R.string.sys_network_error, Toast.LENGTH_SHORT).show(); return; } super.onPageStarted(view, url, favicon); } public void onPageFinished(WebView view, String url) { Log.d("WebView","onPageFinished "); view.loadUrl("javascript:window.local_obj.showSource('<head>'+" + "document.getElementsByTagName('html')[0].innerHTML+'</head>');"); super.onPageFinished(view, url); } } private void loadurl(final WebView view, String url){ try{ //���粻���� if(!NetHelper.networkIsAvailable(getApplicationContext())){ Toast.makeText(getApplicationContext(), R.string.sys_network_error, Toast.LENGTH_SHORT).show(); return; } if(wv.canGoBack()){ url=wv.getUrl(); } view.loadUrl(url);//������ҳ }catch(Exception ex){ Toast.makeText(getApplicationContext(), R.string.sys_network_error,Toast.LENGTH_SHORT).show(); return; } } }