WebView 实现返回到最后一个 在退出

  1. import android.app.Activity;
  2. import android.os.Bundle;
  3. import android.view.KeyEvent;
  4. import android.view.Menu;
  5. import android.view.MenuItem;
  6. import android.view.View;
  7. import android.webkit.WebChromeClient;
  8. import android.webkit.WebView;
  9. import android.webkit.WebViewClient;
  10.  
  11. /**
  12. * Created by Administrator on 2015/1/4.
  13. */
  14. public class WebViewTest extends Activity implements View.OnKeyListener {
  15. private WebView webView;
  16. private String url = "http://www.baidu.com/";
  17.  
  18. @Override
  19. protected void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21. setContentView(R.layout.webview);
  22. webView = (WebView) findViewById(R.id.webView);
  23. webView.setWebChromeClient(new chromeClient());
  24. webView.setWebViewClient(new webViewClient());
  25. webView.getSettings().setJavaScriptEnabled(true);
  26. webView.getSettings().setAllowFileAccess(true);
  27. webView.getSettings().setPluginsEnabled(true);
  28. webView.getSettings().setAllowFileAccess(true);
  29.  
  30. webView.setOnKeyListener(this);
  31. webView.loadUrl(url);
  32. }
  33.  
  34. @Override
  35. public boolean onCreateOptionsMenu(Menu menu) {
  36. getMenuInflater().inflate(R.menu.activity_weview, menu);
  37. return super.onCreateOptionsMenu(menu);
  38. }
  39.  
  40. @Override
  41. public boolean onOptionsItemSelected(MenuItem item) {
  42. switch (item.getItemId()) {
  43. case R.id.menu_settings:
  44. finish();
  45. System.exit(0);
  46. break;
  47. }
  48. return super.onOptionsItemSelected(item);
  49. }
  50.  
  51. @Override
  52. public boolean onKey(View v, int keyCode, KeyEvent event) {
  53. if (event.getAction() == KeyEvent.ACTION_DOWN) {
  54. if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) { //表示按返回键 时的操作
  55. webView.goBack(); //后退
  56. return true; //已处理
  57. }
  58. }
  59. return false;
  60. }
  61.  
  62. class chromeClient extends WebChromeClient {
  63. @Override
  64. public void onProgressChanged(WebView view, int newProgress) {
  65. if (newProgress == 100) {
  66. }
  67. super.onProgressChanged(view, newProgress);
  68.  
  69. }
  70. }
  71.  
  72. class webViewClient extends WebViewClient {
  73. //重写shouldOverrideUrlLoading方法,使点击链接后不使用其他的浏览器打开。
  74. @Override
  75. public boolean shouldOverrideUrlLoading(WebView view, String url) {
  76. view.loadUrl(url);
  77. //如果不需要其他对点击链接事件的处理返回true,否则返回false
  78. return true;
  79. }
  80. }
  81. }

WebView的返回功能的更多相关文章

  1. 实现在WebView中返回上一级

    代码 import React, {Component} from 'react'; import {Platform, View, WebView, BackHandler,Dimensions,S ...

  2. 想要隐藏navigationBar,同时又想支持右滑返回功能

    如果直接设置 self.navigationBarHidden = YES; 那同时也会屏蔽右滑返回功能. 解决办法1: self.navigationBarHidden = NO; self.nav ...

  3. iOS之手势滑动返回功能-b

    iOS中如果不自定义UINavigationBar,通过手势向右滑是可以实现返回的,这时左边的标题文字提示的是上一个ViewController的标题,如果需要把文字改为简约风格,例如弄过箭头返回啥的 ...

  4. WebView实现文件下载功能

    WebView控制调用相应的WEB页面进行展示.安卓源码当碰到页面有下载链接的时候,点击上去是一点反应都没有的.原来是因为WebView默认没有开启文件下载的功能,如果要实现文件下载的功能,需要设置W ...

  5. 禁用ios7 手势滑动返回功能

    禁用ios7 手势滑动返回功能 版权声明:本文为博主原创文章,未经博主允许不得转载. 在有的时候,我们不需要手势返回功能,那么可以在页面中添加以下代码: - (void)viewDidAppear:( ...

  6. UINavigationController实现全屏滑动返回功能

    说明: UINavigationController默认在push出的控制器中都有边沿滑动返回功能,但是只能从屏幕左边滑才能返回,若从屏幕中间画并没有效果.下面实现全屏滑动功能. 探究: 系统默认能够 ...

  7. android 下 利用webview实现浏览器功能

    android 下 利用webview实现浏览器功能(一): 1.界面添加WEBVIEW控件. 2.在界面.JAVA代码页面(protected void onCreate(Bundle savedI ...

  8. iOS彩票项目--第五天,新特性引导页的封装、返回按钮的自定义、导航控制器的滑动返回以及自定义滑动返回功能

    一.上次实现了在AppDelegate中通过判断app版本决定是否进入新特性页面,今天将AppDelegate中的一坨进行了封装.将self.window的根控制器到底应该为新特性界面,还是主页面,封 ...

  9. 再谈iOS 7的手势滑动返回功能

    本文转载至 http://blog.csdn.net/jasonblog/article/details/28282147  之前随手写过一篇<使用UIScreenEdgePanGestureR ...

随机推荐

  1. JAVA的String 类

    String类 1.String对象的初始化 由于String对象特别常用,所以在对String对象进行初始化时,Java提供了一种简化的特殊语法,格式如下: String s = “abc”; s ...

  2. 学习jsp(2)

    @Webservlet 具体见:http://www.cnblogs.com/luxh/archive/2012/06/06/2537458.html. 我折腾半天才发现,在web.xml里注册了,删 ...

  3. C++Primer 第五章

    //1.表达式语句的作用:执行表达式并丢弃求值结果 ; value + ; //执行,并丢弃结果 //2.复合语句是指用花括号括起来的语句和声明的序列,复合语句称为块.一个块就是一个作用域.块不以分号 ...

  4. Swift游戏实战-跑酷熊猫 02 创建熊猫类

    要点: 如何继承SKSpriteNode :子类必须调用SKSpriteNode的一个指定构造器 init(){ super.init(texture:texture,color:UIColor.wh ...

  5. 转:python webdriver API 之设置等待时间

    有时候为了保证脚本运行的稳定性,需要脚本中添加等待时间.sleep(): 设置固定休眠时间. python 的 time 包提供了休眠方法 sleep() , 导入 time 包后就可以使用 slee ...

  6. csuoj 1329: 一行盒子

    http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1329 1329: 一行盒子 Time Limit: 1 Sec  Memory Limit: 12 ...

  7. poj 2509 Peter's smokes

    http://poj.org/problem?id=2509 Peter's smokes Time Limit: 1000MS   Memory Limit: 65536K Total Submis ...

  8. bzoj3192 [JLOI2013]删除物品

    用数组表示两个栈,将两个栈的栈顶并在一起,用树状数组维护一下操作即可. 代码 #include<cstdio> #include<algorithm> #include< ...

  9. ios 开源代码

    .开源代码 http://www.oschina.net/iOS/codingList/365/ios-button http://www.devdiv.com/iOS_iPhone-iOS6%E6% ...

  10. paper 49:论文退稿?审稿人帮你总结了22个能避免的常见问题

    很多投稿出去的文章都是可上可下的.往往退稿的时候,审稿人提了一堆意见,说退稿.但是大家想过没有?如果能事先预测到这些意见,或者请懂行的人事先看过文章预测出意见,然后根据这些意见修改好了再投出去,说不定 ...