Android WebView 在开发过程中有哪些坑

 我来答
约定20125
推荐于2016-08-02 · TA获得超过1.5万个赞
知道大有可为答主
回答量:1.1万
采纳率:96%
帮助的人:2923万
展开全部
  WebViewClient.onPageFinished()。你永远无法确定当WebView调用这个方法的时候,网页内容是否真的加载完毕了。当前正在加载的网页产生跳转的时候这个方法可能会被多次调用,StackOverflow上有比较具体的解释(How to listen for a Webview finishing loading a URL in Android?), 但其中列举的解决方法并不完美。所以当你的WebView需要加载各种各样的网页并且需要在页面加载完成时采取一些操作的话,可能WebChromeClient.onProgressChanged()比WebViewClient.onPageFinished()都要靠谱一些。
  WebView后台耗电问题。当你的程序调用了WebView加载网页,WebView会自己开启一些线程(?),如果你没有正确地将WebView销毁的话,这些残余的线程(?)会一直在后台运行,由此导致你的应用程序耗电量居高不下。对此我采用的处理方式比较偷懒,简单又粗暴(不建议),即在Activity.onDestroy()中直接调用System.exit(0),使得应用程序完全被移出虚拟机,这样就不会有任何问题了。
  切换WebView闪屏问题。如果你需要在同一个ViewGroup中来回切换不同的WebView(包含了不同的网页内容)的话,你就会发现闪屏是不可避免的。这应该是Android硬件加速的Bug,如果关闭硬件加速这种情况会好很多,但无法获得很好的浏览体验,你会感觉网页滑动的时候一卡一卡的,不跟手。
  数据积累问题。开启缓存什么的有利于网页的浏览体验,但你会发现即使是清除了必要的内容,比如Cache、Cookie、Form Data、History、Password等等东西,你的应用程序所占用的存储空间还是会越来越大,到最后只好手动到系统设置的应用信息界面里清除数据了 :(
广州启汇营销策划有限公司
2018-07-30 · 专业app开发、互联网营销策划
广州启汇营销策划有限公司
广州启汇营销策划有限公司是国内领先的移动互联网技术解决方案服务商。拥有子品牌:启汇网络和启汇营销。提供APP、移动商城、Web等开发服务。专注品牌建设、全媒介投放、内容运营、活动策划等市场服务。
向TA提问
展开全部
  • WebView功能强大,应用广泛,一方面它增强了APP的上网体验,让APP功能更多样化,另一方面它也引入了很多的安全问题。

  • 已知的WebView任意代码执行漏洞有4个。

  1. Java代码和网页中的JavaScript脚本交互,在WebView控件中实现了addJavascriptInterface接口。

  2. 网页中的js脚本可以利用接口“myjs”调用App中的Java代码,而Java对象继承关系会导致很多Public的函数及getClass函数都可以在JS中被访问,结合Java的反射机制,攻击者还可以获得系统类的函数,进而可以进行任意代码执行。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小傻

2018-07-31 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部
的确在使用中遇到很多问题,首先一点是适配的问题,还有点击事件监听,如何与java高效的互联,我遇到一个坑是传递很多数据给webview,就出错了,后面改成json的格式才传过去了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式