WebView注意点,注释里有说明
1 package com.example.suneyaenews; 2 3 import com.example.http.HttpThread; 4 5 import android.app.Activity; 6 import android.content.Intent; 7 import android.net.Uri; 8 import android.os.Bundle; 9 import android.os.Handler; 10 import android.view.KeyEvent; 11 import android.view.View; 12 import android.view.View.OnClickListener; 13 import android.webkit.WebView; 14 import android.webkit.WebViewClient; 15 import android.widget.ImageButton; 16 import android.widget.Toast; 17 18 public class WebViewActivity extends Activity implements OnClickListener { 19 private static String HAO123 = "https://www.hao123.com/"; 20 private static String BAIDU = "https://www.baidu.com/"; 21 private static String HOME = "http://m.hao123.com/?vit=h123&from=3w123"; 22 private WebView webView; 23 private ImageButton imgbtn_back, imgbtn_ahead, imgbtn_home, imgbtn_more, 24 imgbtn_tag; 25 26 @Override 27 protected void onCreate(Bundle savedInstanceState) { 28 // TODO Auto-generated method stub 29 super.onCreate(savedInstanceState); 30 setContentView(R.layout.webview); 31 initImgbtn(); 32 webView = (WebView) findViewById(R.id.id_webview); 33 // new HttpThread("www.baidu.com", webView, new Handler()).start(); 34 webView.loadUrl(HAO123);// 打开网页的第一种方式:使用webview来访问 35 36 setWebView();// 设置默认打开行为 37 // webView.loadUrl("file:///android_asset/xx.html ");//没成功, 38 // Uri uri = Uri.parse("https://www.hao123.com/"); 39 // Intent intent = new Intent(Intent.ACTION_VIEW,uri); 40 // startActivity(intent);//打开网页的第二种方式:使用intent 41 // boolean flag = webView.isPressed(); 42 // prompt("webView.isPressed():"+flag); 43 44 webView.getSettings().setJavaScriptEnabled(true);// 设置启动javascript 45 46 } 47 48 private void setWebView() { 49 // //覆盖webView默认使用第三方或者系统浏览器打开网页的行为, 50 webView.setWebViewClient(new WebViewClient() { 51 @Override 52 public boolean shouldOverrideUrlLoading(WebView view, String url) { 53 // TODO Auto-generated method stub 54 // true:在webview中打开, false:用系统或者第三方浏览器打开 55 view.loadUrl(url); 56 return true; 57 } 58 59 @Override 60 public void onLoadResource(WebView view, String url) { 61 // TODO Auto-generated method stub 62 // prompt("正在加载资源,onLoadResource,url:"+url); 63 } 64 // 这个WebViewClient的作用:帮助WebView去处理一些页面控制,和请求通知。 65 }); 66 } 67 68 private void initImgbtn() { 69 // imgbtn_back, imgbtn_ahead, imgbtn_home, imgbtn_more, 70 // imgbtn_tag 71 imgbtn_back = (ImageButton) findViewById(R.id.id_btn_back); 72 imgbtn_ahead = (ImageButton) findViewById(R.id.id_btn_ahead); 73 imgbtn_home = (ImageButton) findViewById(R.id.id_btn_home); 74 imgbtn_more = (ImageButton) findViewById(R.id.id_btn_more); 75 imgbtn_tag = (ImageButton) findViewById(R.id.id_btn_tag); 76 imgbtn_back.setOnClickListener(this); 77 imgbtn_ahead.setOnClickListener(this); 78 imgbtn_home.setOnClickListener(this); 79 imgbtn_more.setOnClickListener(this); 80 imgbtn_tag.setOnClickListener(this); 81 } 82 83 /** 84 * 改写物理按钮返回的逻辑, 85 */ 86 @Override 87 public boolean onKeyDown(int keyCode, KeyEvent event) { 88 // TODO Auto-generated method stub 89 if (keyCode == event.KEYCODE_BACK) { 90 if (webView.canGoBack()) { 91 prompt("返回上一页面..."); 92 webView.goBack();// 返回上一页面 93 return true; 94 } else { 95 prompt("退出程序..."); 96 System.exit(0); 97 } 98 } 99 return super.onKeyDown(keyCode, event); 100 } 101 102 private void prompt(String hint, int duration) { 103 Toast.makeText(this, hint, duration).show(); 104 } 105 106 /** 107 * 弹出提示 108 * 109 * @param hint 110 */ 111 private void prompt(String hint) { 112 Toast.makeText(this, hint, 100).show(); 113 } 114 115 @Override 116 public void onClick(View v) { 117 int ic_id = v.getId(); 118 switch (ic_id) { 119 case R.id.id_btn_back: 120 if (webView.canGoBack()) { 121 prompt("返回上一页面..."); 122 webView.goBack(); 123 } 124 break; 125 case R.id.id_btn_ahead: 126 if (webView.canGoForward()) { 127 prompt("返回下一页面..."); 128 webView.goForward();// 返回上一页面 129 } else { 130 prompt("小主,这已经是最后一页了..."); 131 } 132 break; 133 case R.id.id_btn_home: 134 // 如果当前url不是HOME页,那么就加载到home页,否则什么也不干 135 if (!HOME.equals(webView.getUrl())) { 136 prompt("回到主页... " + webView.getUrl()); 137 webView.loadUrl(HOME); 138 setWebView();// 设置默认打开行为 139 } 140 break; 141 case R.id.id_btn_more: 142 143 break; 144 case R.id.id_btn_tag: 145 146 break; 147 default: 148 break; 149 } 150 } 151 }