webviewactivity

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 }

  

原文地址:https://www.cnblogs.com/Sunnor/p/5469549.html