码迷,mamicode.com
首页 > 移动开发 > 详细

Android WebView自定义错误页面笔记

时间:2015-09-07 21:00:50      阅读:1418      评论:0      收藏:0      [点我收藏+]

标签:

需求:

  WebView加载H5页面遇到错误时,需要修改系统默认的页面,采用自己定制的页面。

解决方案与过程:

1.最开始采用的是webView.loadDataWithBaseUrl加载一段字符串:

String data="<a onClick=\"window.history.back()\" >页面错误,点击刷新</a>";

mWebView.loadDataWithBaseURL("", data, "text/html", "UTF-8", "");

存在问题:由于Android4.4系统更换了浏览器内核(由webkit变为chrome),此时window.history.back()遇到问题(webkit与chrome的back不一致),因此需要修改这种方法。

2.之后尝试了如下代码:

String data="<a onClick=\"window.location.replace(\‘"+failingUrl+"\‘)\" >页面错误,点击刷新</a>";

mWebView.loadDataWithBaseURL("", data, "text/html", "UTF-8", "");

存在问题:这种方法规避了window.history.back方法,可是在用户多次点击“刷新”后再后退页面时,会回到错误页面。

3.最终选择了:

String data="<a href=\"javascript:location.reload()\" >页面错误,点击刷新</a>";

webView.loadUrl("javascript:document.body.innerHTML=\"" + sb.toString() + "\"");

使用innerHTML页面不会发生跳转,所以直接调用js的reload方法即可,既规避了history.back方法,用户也不会再次返回到错误页面

Android WebView自定义错误页面笔记

标签:

原文地址:http://www.cnblogs.com/younghome/p/4789727.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!