我实现了一个基本上在webview中加载Amazon的应用程序,所以显然我们不应该担心ssl错误,但是,我遇到了一个问题,即两个用户在尝试加载页面时只收到一个空白页面.
通过重载onReceivedSslError()
方法,我能够确定webview抛出很多SSL_INVALID
并且能够通过忽略它们并调用handler.proceed函数来加载页面.
@Override public void onReceivedSslError(WebView view, final SslErrorHandler handler, SslError error) { handler.proceed(); }
这两个问题都发生在Android 5.0+上,因此,我尝试从谷歌播放下载webview应用程序,因为在Android 5.0之后webview是外部的.它解决了这个问题.没有更多的SSL错误被抛出,亚马逊装得很好.
现在这里是我能够在两个用户之间找到的相关性.他们两个都拥有Android 5.0+并且以前都能够在webview中加载亚马逊,但是在他们的存储空间不足之后又遇到了这个问题.我认为存储问题导致webview开始抛出这些SSL错误?
我问是否有人可以解释为什么会发生这种情况,以及是否有任何缓解措施?
这是Chrome中的一个错误,与存储空间无关.
这里的错误详述如下:https://bugs.chromium.org/p/chromium/issues/detail?id = 664177
基本上在Chrome 53的构建日期(2016年8月30日)后10周,所以在2016年11月7日,使用赛门铁克或其子公司(例如Geotrust和Thawte)发布的HTTPS证书的网站停止在Chrome中工作.由于赛门铁克是世界上最大的CA之一,因此影响了很多站点.唯一的解决方法是升级.
一个短期的解决方案是更新到Chrome 54,这应该让你一直到2016年12月27日或2017年1月7日(取决于你使用的54的确切版本),当它达到10周的截止日期时.该错误已在Chrome 55中永久修复.
所以希望你的用户升级(或者如果他们联系你就说服他们)基本上是唯一的选择.
唯一的另一个选择是将证书颁发机构从赛门铁克转移到另一个要查看的网站的证书提供商(您可能认为可疑部分是谷歌的意图,因为这种变化确实间接地发生在谷歌对赛门铁克的惩罚之中,即使它显然不是为了引起这个问题).显然,对于您无法控制的网站,例如亚马逊,这不是一个选项.
我不知道有任何地方详细说明每个设备/操作系统版本的WebView版本.
更多细节在这里,这里,这里或甚至这里.
当它发生在我身上时,让我觉得有点痛苦:-(