React Native之Android 5.0以下系统WebView访问https页面变成空白页

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SpicyBoiledFish/article/details/78922416

在我们的React Native项目中,需要开发一个tab页面专门配置三方h5链接,供用户浏览。自动化测试:Android 5.0以下系统此tab页面为空白页面。看效果:



而我们去查看这个三方的h5链接时,发现,这个链接是https协议开头的链接。http是超文本传输协议,信息是明文传输,但是https 则是具有安全性ssl加密传输协议。当我们去用这台低版本系统的Android机子去用本地浏览器打开这个三方h5链接,会出现以下界面:


那么,当我们去点击"继续访问",就会正常浏览网页了。所以原因就出在https链接需要做SslError特殊处理。


在Android中,WebView可以用来加载http和https网页到本地应用的控件。但是在默认情况下,通过loadUrl(String url)方法,可以顺利loadUrl(“http://www.baidu.com”)之类的页面。但是,当load通过ssl加密的https页面,但是如果这个网站的安全证书在Android无法得到认证,WebView就会变成一个空白页,而并不会像自带的浏览器一样弹出提示。因此,我们必须针对这种情况进行处理。


import android.net.http.SslError;
import android.webkit.SslErrorHandler;
@Override
      public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
//super.onReceivedSslError(view, handler, error);
      handler.proceed();
}


可以参考以下链接:

http://blog.csdn.net/top_code/article/details/8998385
http://blog.csdn.net/kingoneyun/article/details/54581764?locationNum=6&fps=1


哈哈哈哈哈,慢慢的开始接触原生了。。嘻嘻(继续Fighting~)

猜你喜欢

转载自blog.csdn.net/SpicyBoiledFish/article/details/78922416