关于使用webview的一些坑和经验总结
来源:互联网 发布:随机域名生成器 编辑:程序博客网 时间:2024/06/05 18:39
WebView是基于webkit引擎展现web页面的控件,而且越来越多项目在使用hybrid模式,因此我们在日常开发中不可避免的回合WebView打交道,也会碰到各种各样的问题,有可能是手机系统版本问题,机型兼容问题,耗电问题,安全漏洞问题,资源释放问题,还罗列一些WebView的小功能点,因此特地总结一下,用来提高开发效率.
WebView清空历史记录
WebView有提供clearHistory功能,但是要在onPageFinished()方法里调用才能调用goback方法,这样就略死板,而且加载一个url的时候有可能多次调用,因此查了下资料找到了一种解决办法
clearView()This method was deprecated in API level 18. Use WebView.loadUrl("about:blank") toreliably reset the view state and release page resources (including any running JavaScript)
WebView.clearView()在api18以后被废弃,可以使用WebView.loadUrl(“about:blank”)代替
WebView的JS交互与安全性问题
总所周知,4.2以下的系统与本地交互可能会产生安全性问题,
具体可以通过WebView中接口隐患与手机挂马利用了解.
这里推荐一个比较好的的解决方案
safe-java-js-webview-bridge
关于手机页面的适配
同一个Web页面可能在不同的手机上显示的效果不一样,可以在HTML的head标签里添加
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
通过设置width、height、initial-scale、当前手机屏幕密度等还适配当前的手机,具体参考Supporting Different Screens in Web Apps
Pixel-Perfect UI in the WebView
如果页面为https,图片为http地址的时候5.0+系统无法加载图片
5.0以上的系统默认屏蔽混合内容,需要开启setMixedContentMode(true)来支持非https文件的加载
加快html加载速度
通过设置setLoadsImagesAutomatically(false)来关闭自动加载图片功能,保证页面加载出来在加载图片,只适用于API19以下不包括19,同时在onPageFinished里通过getLoadsImagesAutomatically()判断是否关闭,如果关闭则打开加载图片功能
自定义加载错误页面
WebView在无网络状态下load网页会提示找不到网页而且还会暴露地址链接,我们可以在onReceivedError里面获取错误,然后可以load本地自定义错误页面
String errorHtml = "<html><body>加载出错了!</body></html>"; mWebView.stopLoading(); mWebView.loadData(errorHtml, "text/html", "UTF-8");
WebView占内存问题
- 代码动态添加WebView(待验证)
- 在执行webView的ondestory之前,需要在当前布局remove WebView,因为可能会
碰到WebView.destroy() called while still attached的问题 - 在activity的onDestory调用webView.removeAllViews()、webView.onDestory()
- 关于使用webview的一些坑和经验总结
- 关于使用webview的一些记录
- 关于使用webView的一些细节问题
- 关于使用WebView的一些问题
- 关于PVPGN的一些经验总结
- 关于程序设计的一些经验总结
- 关于程序设计的一些经验总结
- OpenCV使用的一些经验总结
- 使用xubuntu的一些经验总结
- OpenCV使用的一些经验总结
- OpenCV使用的一些经验总结
- 使用Protobuf的一些经验总结
- Android WebView使用经验总结
- 使用SQLite数据库和Access数据库的一些经验总结
- Flume系统搭建和使用的一些经验总结-搭建篇
- android 关于使用webView的一些问题记录
- 关于WebView 的一些总结
- 关于webview 的一些问题
- HDU - 5636 Shortest Path (判断最短路)
- 103. Binary Tree Zigzag Level Order Traversal LeetCode
- python 爬虫——针对query爬取百度百科页面
- 第一个final程序
- leetcode_063 Unique Paths II
- 关于使用webview的一些坑和经验总结
- Java基础之自动装箱拆箱
- C语言编程之计算二进制数中1的个数
- 使用CocoaPods找不到头文件解决方法
- 输出星号图
- 自定义TextView 实现文字渐变效果
- 微信这些好用的功能你都用过吗?
- Binder
- Session与Cookie(完成)