webviewactivity
2016-05-07 23:49
435 查看
WebView注意点,注释里有说明
package com.example.suneyaenews; import com.example.http.HttpThread; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.ImageButton; import android.widget.Toast; public class WebViewActivity extends Activity implements OnClickListener { private static String HAO123 = "https://www.hao123.com/"; private static String BAIDU = "https://www.baidu.com/"; private static String HOME = "http://m.hao123.com/?vit=h123&from=3w123"; private WebView webView; private ImageButton imgbtn_back, imgbtn_ahead, imgbtn_home, imgbtn_more, imgbtn_tag; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.webview); initImgbtn(); webView = (WebView) findViewById(R.id.id_webview); // new HttpThread("www.baidu.com", webView, new Handler()).start(); webView.loadUrl(HAO123);// 打开网页的第一种方式:使用webview来访问 setWebView();// 设置默认打开行为 // webView.loadUrl("file:///android_asset/xx.html ");//没成功, // Uri uri = Uri.parse("https://www.hao123.com/"); // Intent intent = new Intent(Intent.ACTION_VIEW,uri); // startActivity(intent);//打开网页的第二种方式:使用intent // boolean flag = webView.isPressed(); // prompt("webView.isPressed():"+flag); webView.getSettings().setJavaScriptEnabled(true);// 设置启动javascript } private void setWebView() { // //覆盖webView默认使用第三方或者系统浏览器打开网页的行为, webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub // true:在webview中打开, false:用系统或者第三方浏览器打开 view.loadUrl(url); return true; } @Override public void onLoadResource(WebView view, String url) { // TODO Auto-generated method stub // prompt("正在加载资源,onLoadResource,url:"+url); } // 这个WebViewClient的作用:帮助WebView去处理一些页面控制,和请求通知。 }); } private void initImgbtn() { // imgbtn_back, imgbtn_ahead, imgbtn_home, imgbtn_more, // imgbtn_tag imgbtn_back = (ImageButton) findViewById(R.id.id_btn_back); imgbtn_ahead = (ImageButton) findViewById(R.id.id_btn_ahead); imgbtn_home = (ImageButton) findViewById(R.id.id_btn_home); imgbtn_more = (ImageButton) findViewById(R.id.id_btn_more); imgbtn_tag = (ImageButton) findViewById(R.id.id_btn_tag); imgbtn_back.setOnClickListener(this); imgbtn_ahead.setOnClickListener(this); imgbtn_home.setOnClickListener(this); imgbtn_more.setOnClickListener(this); imgbtn_tag.setOnClickListener(this); } /** * 改写物理按钮返回的逻辑, */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if (keyCode == event.KEYCODE_BACK) { if (webView.canGoBack()) { prompt("返回上一页面..."); webView.goBack();// 返回上一页面 return true; } else { prompt("退出程序..."); System.exit(0); } } return super.onKeyDown(keyCode, event); } private void prompt(String hint, int duration) { Toast.makeText(this, hint, duration).show(); } /** * 弹出提示 * * @param hint */ private void prompt(String hint) { Toast.makeText(this, hint, 100).show(); } @Override public void onClick(View v) { int ic_id = v.getId(); switch (ic_id) { case R.id.id_btn_back: if (webView.canGoBack()) { prompt("返回上一页面..."); webView.goBack(); } break; case R.id.id_btn_ahead: if (webView.canGoForward()) { prompt("返回下一页面..."); webView.goForward();// 返回上一页面 } else { prompt("小主,这已经是最后一页了..."); } break; case R.id.id_btn_home: // 如果当前url不是HOME页,那么就加载到home页,否则什么也不干 if (!HOME.equals(webView.getUrl())) { prompt("回到主页... " + webView.getUrl()); webView.loadUrl(HOME); setWebView();// 设置默认打开行为 } break; case R.id.id_btn_more: break; case R.id.id_btn_tag: break; default: break; } } }
相关文章推荐
- 【Android】几种常见广播监听器(Wifi,亮灭屏,Home键,短信)总结
- 15 个 Android 通用流行框架大全
- 为android系统添加USB AUDIO设备的放音和录音功能
- iOS开发--TableView详细解释
- IOS CoreAnimation
- Android读写SD卡
- Android中Shape 和 Selector的用法
- 越过用户授权使用浮窗
- AndroidAnnotation 在AS中的配置
- 深入了解Android进度条——ProgressBar,SeekBar和RatingBar
- unity源码解析Texture2D
- 20150313+微信-全
- ubuntu恢复unity桌面
- android:theme和app:popupTheme的作用,以及在android 3.0以下不起作用问题的解决
- 若干道Swift面试题
- 20150311+微信-02
- android remote submix 录制系统内置的声音
- Android中,对SQLite的‘批处理’操作
- Android通用流行框架大全
- 20150311+微信-01