Android WebView自定义错误页面笔记

需求:

  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方法,用户也不会再次返回到错误页面

时间: 2024-12-16 08:02:24

Android WebView自定义错误页面笔记的相关文章

MVC4 自定义错误页面(三)

一.概述 MVC4框架自带了定义错误页,该页面位于Shared/Error,该页面能够显示系统未能捕获的异常,如何才能使用该页面: 二.使用步骤: 1.配置WebConfig文件,在System.Web节点下加上 <customErrors mode="On"  defaultRedirect="~/Shared/Error" /> 翻阅一些大神写的博客,在他们的博客中指出defaultRedirect是指向错误页面的URL,可是经过本人测试的时候,发现

ASP.NET全局错误处理和异常日志记录以及IIS配置自定义错误页面

应用场景和使用目的 很多时候,我们在访问页面的时候,由于程序异常.系统崩溃会导致出现黄页.在通常的情况下,黄页对于我们来说,帮助是极大的,因为它可以帮助我们知道问题根源,甚至是哪一行代码出现了错误.但这对于用户是非常可怕的,因为用户不知道发生了什么,也无法了解黄页给出的内容.甚至,如果我们遇到一些不友好的人,他们会拿这些内容大做文章,对我们网站产生威胁. 那我们如何在程序异常.系统崩溃时,不会出现黄页,并且还可以给出一些更加友好的提示呢?甚至在我们需要的时候,可以收集这些异常信息,并加以分析,能

[转载]针对IIS7以上的ASP.NET网站自定义错误页面与异常日志总结

针对IIS7以上的ASP.NET网站自定义错误页面与异常日志总结 汪宇杰 2014-1-11 星期六 02:31 455 Reads 1 Comments 自定义错误页面和异常记录是个很古老的话题了,但依旧可以让人爆到现在.在我做了无数次试验并总结经验和原则后,写下本文,已警后人. 本文的范围和限制 本文仅仅适用于部署在IIS7或以上版本中的ASP.NET 4.0集成模式应用程序.IIS7以上的意思是Windows Server 2008以上服务器适用.我已在WS2012R2,IIS8上测过.

ASP.NET网站中设置404自定义错误页面

在用ASP.NET WebForm开发一个网站时,需要自定义404错误页面. 做法是这样的 在网站根目录下建立了一个404.html的错误页面,然后在Global.asax文件中,加入如下代码: <%@ Application Language="C#" %> <script runat="server"> void Application_Error(object sender, EventArgs e) { Response.Status

翻译:ASP.NETMVC自定义错误页面真的简单吗?

如果你在设置asp.net mvc自定义错误页面时遇到问题,这并不止你一个人.惊讶之余你的做法是正确的,没有起到作用的原因是其一部分错误是由asp.net管道处理的,另一部分是由iis直接处理. 通常情况 (我期望是这种情况,在一些其他框架/服务器上) 我们只需要在一个地方配置自定义错误页就可以了,无论怎么哪儿引发的错误.就像这样︰ <customErrors mode="On"> <error code="404" path="404.

MVC4 自定义错误页面(转)

一.概述 MVC4框架自带了定义错误页,该页面位于Shared/Error,该页面能够显示系统未能捕获的异常,如何才能使用该页面: 二.使用步骤: 1.配置WebConfig文件,在System.Web节点下加上 <customErrors mode="On"  defaultRedirect="~/Shared/Error" /> 翻阅一些大神写的博客,在他们的博客中指出defaultRedirect是指向错误页面的URL,可是经过本人测试的时候,发现

Spring Boot自定义错误页面,Whitelabel Error Page处理方式

我已经是Spring Framework框架的忠实粉丝.对于企业软件开发者来说它提供了对常见问题的通用解决方案,包括那些你在未来开发中没有意识到的问题.但是,它构建的J2EE项目变得比较臃肿,需要被一种新的解决方案替代. 我最大的抱怨就是最开始使用spring Framework构建项目十分缓慢和复杂,比如构建一个包含JPA的MVC应用.为改变这种情况,Spring Boot应运而生了. Spring Boot以一种新的微服务的方式来替代以Spring Framework构建项目的传统方式,我已

ASP.NET Core中显示自定义错误页面

在 ASP.NET Core 中,默认情况下当发生500或404错误时,只返回http状态码,不返回任何内容,页面一片空白. 如果在 Startup.cs 的 Configure() 中加上 app.UseStatusCodePages(); ,500错误时依然是一片空白(不知为何对500错误不起作用),404错误时有所改观,页面会显示下面的文字: Status Code: 404; Not Found 如果我们想不管500还是404错误都显示友好的自定义错误页面,该如何实现呢?请看下面的分解.

MVC自定义错误页面

MVC异常处理主要有三种方案:1.基于HandleErrorAttribute重写OnException方法:2.基于Global.apsx添加Application_Error方法:3.直接在Web.Config中配置.现基于上述思路,测试了下面三种自定义错误页面的处理方法(主要侧重于显示异常信息,便于快速找到代码中的异常来源),以便后续查阅.不足之处,还请指教! 1.直接在web.config的<system.web>节点下加入<customErrors mode="On&