今天逛知乎的时候,看到一个有关

WebView 的坑很多,主要的比较让人疑惑的坑有如下几个:

1、WebViewClient.onPageFinished()。你永远无法确定当WebView调用这个方法的时候,网页内容是否真的加载完毕了。当前正在加载的网页产生跳转的时候这个方法可能会被多次调用。所以当你的WebView需要加载各种各样的网页并且需要在页面加载完成时采取一些操作的话,可能WebChromeClient.onProgressChanged()比WebViewClient.onPageFinished()都要靠谱一些。

2、WebView后台耗电问题。当你的程序调用了WebView加载网页,WebView会自己开启一些线程,如果你没有正确地将WebView销毁的话,这些残余的线程会一直在后台运行,由此导致你的应用程序耗电量居高不下。对此比较简单粗暴的方式是,在Activity.onDestroy()中直接调用System.exit(0),使得应用程序完全被移出虚拟机,这样就不会有任何问题了。

3、切换WebView闪屏问题。如果你需要在同一个ViewGroup中来回切换不同的WebView(包含了不同的网页内容)的话,你就会发现闪屏是不可避免的。这应该是Android硬件加速的Bug,如果关闭硬件加速这种情况会好很多,但无法获得很好的浏览体验,你会感觉网页滑动的时候一卡一卡的,不跟手。

4、数据积累问题。开启缓存什么的有利于网页的浏览体验,但你会发现即使是清除了必要的内容,比如Cache、Cookie、Form Data、History、Password等等东西,你的应用程序所占用的存储空间还是会越来越大,到最后只好手动到系统设置的应用信息界面里清除数据了 。

5、滚动条问题。Android System WebView的横向滚动条真是好粗的有木有...

6、webview原生支持js与native代码交互,可惜在4.2以下版本上有安全漏洞,当时被乌云报出来,事情还挺大,各大浏览器厂商都紧急应对,我们也还是想了其他办法,解决了这个问题。

上面的这些Android WebView中的坑,大家在安卓开发中,肯定都真真切切的遇到过。其实WebView的坑,究其根本大部分都是Webkit等内核的坑,是它发展过程中遇到的一些遗留问题。有些问题可能我们除了正确面对外,别无他法,但是有的问题,我们还是可以进行优化、改进的。如果对于上述的一些坑,大家有很好的解决办法,欢迎分享。

android webview缺点,Android的WebView有哪些坑?相关推荐

  1. Carson带你学Android:你要的WebView与 JS 交互方式都在这里了

    前言 现在很多App里都内置了Web网页(Hybrid App),比如说很多电商平台,淘宝.京东.聚划算等等,如下图 上述功能是由Android的WebView实现的,其中涉及到Android客户端与 ...

  2. android使用webview上传文件,Android项目中如何在webview页面中上传文件

    Android项目中如何在webview页面中上传文件 发布时间:2020-11-26 15:56:27 来源:亿速云 阅读:68 作者:Leah 本篇文章为大家展示了Android项目中如何在web ...

  3. Android开发学习笔记:WebView 一

    WebView(网络视图)能加载显示网页,可以将其视为一个浏览器.它使用了WebKit渲染引擎加载显示网页,实现WebView有以下两种不同的方法: 第一种方法的步骤: 1.在要Activity中实例 ...

  4. Android通过Chrome Inspect调试WebView

    Android通过Chrome Inspect调试WebView的H5 App出现空白页面的解决方法 转载自:https://www.cnblogs.com/slmk/p/7591126.html A ...

  5. android webview详情,Android中的WebView详细介绍

    Android中WebView的详细解释: 1. 概念: WebView(网络视图)能加载显示网页,可以将其视为一个浏览器.它使用了WebKit渲染引擎加载显示网页. 2. 使用方法: (1).实例化 ...

  6. webview gif android,使用WebView android读取Gif图像

    当你试图从资源目录加载gif时,它没有动画,你应该使用GifWebView. activity_main.xml中 android:layout_width="fill_parent&quo ...

  7. android webview实例,android WebView 使用实例

    主布局文件: 主活动类WebViewMainActivity.java: package com.example.ch10; import com.example.baseexample.R; imp ...

  8. android webview静态方法,android – 将静态HTML加载到Webview中

    在这一点上,这变得非常令人沮丧..一切看起来都是正确的但我在webview区域中得到"网页不可用". file:/// android_assets/test.html上的网页可能 ...

  9. android点赞webview页面,Android WebView

    一.简介 WebView是Android系统中的原生控件,其主要功能与前端页面进行响应交互,快捷省时地实现如期的功能,相当于增强版的内置浏览器. 使用时需要在配置文件里设置网络权限,定义布局大小和样式 ...

最新文章

  1. mysql常用管理命令
  2. win11怎么改任务栏大小
  3. python不是内部或外部命令的解决方法_详解python常见报错--NO MODULE NAMED _SQLITE3解决方法...
  4. 【struts2】struts2配置文件—struts.xml
  5. 大剑无锋之JVM 堆内存溢出后,其他线程是否可继续工作?
  6. Linux学习之C语言的进程与线程编程
  7. 疫情加速中国服务器采购 数字化转型成为增长“新引擎”
  8. 这么说吧,NIO很简单,其实就是个牛逼IO
  9. Linux二进制保护(文末福利)
  10. tar命令打包并压缩指定的文件夹并且排除指定的文件
  11. DataWhale_Pandas Task08 文本数据
  12. My97DatePicker时间控件在asp.net的应用
  13. java webservice jws,1 基于jws的webservice项目
  14. 禅道集成聊天工具喧喧,敏捷开发沟通面对面
  15. 水星mw310r虚拟服务器,水星MW310R(V1-V4)路由器桥接设置教程 | 192路由网
  16. The Apache Way - 开源项目
  17. python操作Excel之openxlpy
  18. 视频教程-EXCEL VBA编程(excel办公高手必经之路)-Office/WPS
  19. 程序员生存定律-六个程序员的故事(2)
  20. 信息系统安全实验——Week 8

热门文章

  1. 鸿蒙系统安卓模拟器,华为鸿蒙OS再次爆出缺陷!被误判为安卓模拟器:不属于手机系统设备...
  2. Docker容器中Data volumes详解
  3. friends里面的感动
  4. 计算机常识知识--磁盘、内存、IO
  5. c语言编程求nba比赛,c语言获取直播吧最近一周nba比赛信息
  6. linux var目录全名,linux系统中的绝对路径和相对路径
  7. Python正则表达式匹配中文
  8. 2019保研外校经验(清华计算机+浙大控制+清华深研院人工智能)
  9. U盘装linux总是不行,U盘安装Linux安装报错及解决方案
  10. Android 自定义动画view(小变大,旋转,色值)