自Android 4.4起,Android中的WebView开始基于Chromium(谷歌浏览器)支持浏览器的一系列功能,webkit解析网页各个节点,这个改变,使得WebView的性能大幅度提升,并且对HTML5, CSS3, and JavaScript有了更好的支持。

案列主要介绍WebView加载带有HTML5的视频标签<video/>的网页,点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边,防止WebView内存泄漏等。

效果图:

Html网页图:

  1. public class MainActivity extends Activity {
  2.  
  3. private WebView webView;
  4. private String url = "http://lbh.zhangwoo.cn/?m=home&c=index&a=home";
  5.  
  6. @Override
  7. protected void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.activity_main);
  10. initWebView();
  11. }
  12.  
  13. @SuppressWarnings("deprecation")
  14. @SuppressLint("SetJavaScriptEnabled")
  15. private void initWebView() {
  16. webView = (WebView) findViewById(R.id.activity_webview);
  17. webView.requestFocus();
  18. webView.setHorizontalScrollBarEnabled(false);
  19. webView.setVerticalScrollBarEnabled(false);
  20. WebSettings web = webView.getSettings();
  21. web.setJavaScriptEnabled(true);
  22. web.setBuiltInZoomControls(true);
  23. web.setSupportZoom(true);
  24. web.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
  25. web.setUseWideViewPort(true);
  26. web.setLoadWithOverviewMode(true);
  27. web.setSavePassword(true);
  28. web.setSaveFormData(true);
  29. //web.setBlockNetworkImage(true);// 把图片加载放在最后来加载渲染
  30.  
  31. webView.loadUrl(url);
  32. webView.setWebViewClient(new WebViewClient() {
  33. @Override
  34. public boolean shouldOverrideUrlLoading(WebView view, String url) {
  35. // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边
  36. view.loadUrl(url);
  37. return true;
  38.  
  39. }
  40.  
  41. @Override
  42. public void onReceivedSslError(WebView view,
  43. SslErrorHandler handler, SslError error) {
  44. // 重写此方法可以让webview处理https请求
  45. handler.proceed();
  46. }
  47. });
  48. }
  49.  
  50. @Override
  51. // 设置回退
  52. // 覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法
  53. public boolean onKeyDown(int keyCode, KeyEvent event) {
  54. if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
  55. webView.goBack(); // goBack()表示返回WebView的上一页面
  56. return true;
  57. }
  58. return false;
  59. }
  60.  
  61. /***
  62. * 防止WebView加载内存泄漏
  63. */
  64. @Override
  65. protected void onDestroy() {
  66. super.onDestroy();
  67. webView.removeAllViews();
  68. webView.destroy();
  69.  
  70. }

网络权限

  1. <uses-permission android:name="android.permission.INTERNET"/>

源码点击下载:https://github.com/DickyQie/android-webview

Android 中的 WebView实现 Html5 标签网页加载的更多相关文章

  1. Android中获取网络数据时的分页加载

    //此实在Fragment中实现的,黄色部分为自动加载,红色部分是需要注意的和手动加载,    蓝色部分是睡眠时间,自我感觉不用写  ,还有就是手动加载时,不知道为什么进去后显示的就是最后一行,求大神 ...

  2. android中的LaunchMode详解----四种加载模式

    Activity有四种加载模式: standard singleTop singleTask singleInstance 配置加载模式的位置在AndroidManifest.xml文件中activi ...

  3. Android中使用WebView, WebChromeClient和WebViewClient加载网页 (能够执行js)

    Android中使用WebView, WebChromeClient和WebViewClient加载网页   在android应用中,有时要加载一个网页,如果能配上一个进度条就更好了,而android ...

  4. android中使用WebView请求本地网页

    使用WebView的方式请参考我的上一篇文章:android中使用WebView请求网页 这里说一下请求本地网页的方法: 本地网页应该把网页保存在src/main/assets目录下: webView ...

  5. Android中使用WebView实现全屏切换播放网页视频

    首先写布局文件activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/an ...

  6. Android中使用WebView与JS交互全解析

    1.概述首先,需要提出一个概念,那就是hybrid,主要意思就是native原生Android和h5混合开发.为什么要这样做呢?大家可以想象一下针对于同一个活动,如果使用纯native的开发方式,An ...

  7. 让Android中的webview支持页面中的文件上传

    android webview在默认情况下是不支持网页中的文件上传功能的: 如果在网页中有<input type="file" />,在android webview中 ...

  8. Android中脱离WebView使用WebSocket实现群聊和推送功能

    WebSocket是Web2.0时代的新产物,用于弥补HTTP协议的某些不足,不过他们之间真实的关系是兄弟关系,都是对socket的进一步封装,其目前最直观的表现就是服务器推送和聊天功能.更多知识参考 ...

  9. Android中通过WebView控件实现与JavaScript方法相互调用的地图应用

    在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用andro ...

随机推荐

  1. oracle审计详解-转

    http://blog.chinaunix.net/u2/66903/showart_2082884.htmlOracle使用大量不同的审计方法来监控使用何种权限,以及访问哪些对象.审计不会防止使用这 ...

  2. ECharts使用心得总结(二)

    Echarts使用心得总结(二) 前言: 前一段时间一直都挺忙的,各种事,也没来得及每周的总结,趁着晚上的一点时间把项目中用的Echart中常用的各种图表给抽象总结了一下,趁着周末跟大家分享一下.之前 ...

  3. [转]行者,一念一生,成功的背后!(给所有IT人)

    成功的背后,有着许多不为人知的故事,而正是这些夹杂着泪水和汗水的过去,才成就了一个个走向成功的普通人. 凌晨两点半,早 已习惯了一个人坐在电脑前的我,望着屏幕,任思绪在暗夜的包容下静静流淌,时光仿佛又 ...

  4. 三线程连续打印ABC

    package test5; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Reentr ...

  5. ReorderList 的使用

    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">       ...

  6. mysql 联合索引(转)

    http://blog.csdn.net/lmh12506/article/details/8879916 mysql 联合索引详解 联合索引又叫复合索引.对于复合索引:Mysql从左到右的使用索引中 ...

  7. [HTML] CSS3 文本效果

    CSS3 文本效果 CSS3中包含几个新的文本特征. 在本章中您将了解以下文本属性: text-shadow word-wrap 浏览器支持

  8. sp_help 快速查看表结构、视图信息

    sp_helptext: 是MS SQL Server的一个系统存储过程,可以通过它来查看存储过程或者视图.函数源码 示例:sp_helptext viewName (viewName  即要查询的存 ...

  9. [DFNews] EIFT更新至1.2,支持iPhone4s及iPhone5物理获取

    俄罗斯厂商Elcomsoft近日更新了其旗下的iOS取证软件Elcomesoft iOS Forensic Toolkit,更新后的1.2版本支持针对iOS 4-6的iPhone 4s.iPhone5 ...

  10. 在linux下获取帮助

    1.使用man手册页 man是一种显示Unix/Linux在线手册的命令.可以用来查看命令.函数或文件的帮助手册,另外它还可以显示一些gzip压缩格式的文件. 读者在遇到不懂的命令时,可以用man查看 ...