android 内置webview 对https的支持

1、问题

最近开发应用遇到了webview 需要支持https的问题,找遍了网络各个帖子,网友们大致提供了两种方案:

1)WebViewClient 添加ssl error 错误处理

	@Override
			public void onReceivedSslError(WebView view,
					SslErrorHandler handler, SslError error) {
				handler.proceed();
			}

2)自定义WebViewClient 


2、方案分析

通过代码实际分析发现以上两种方案对于tls1.0 是管用的,但目前由于一些server的需求,强制将server的访问限制成TLS1.2,这种情况下webview就不能工作了,上面两种方案就是浮云。

     webview 会一直报“无法建立安全连接。”

 
3、如何解决

       寻遍三山五岳,最后的解决方法就是没有解决方案,但有一篇权威的统计,TLS1.2 到底是否支持android os webview 
          tls 支持详情
        

ogle Android OS Browser
[28]
Android 1.0, 1.1, 1.5, 1.6, 2.0–2.1,2.2–2.2.3 No Enabled by default Yes No No Unknown No No Unknown Unknown Vulnerable Vulnerable Vulnerable Vulnerable No
Android 2.3–2.3.7, 3.0–3.2.6, 4.0–4.0.4 No Enabled by default Yes No No Unknown Yes[2] since Android OS 3.0[29] Unknown Unknown Vulnerable Vulnerable Vulnerable Vulnerable No
Android 4.1–4.3.1, 4.4–4.4.4 No Enabled by default Yes Disabled by default[30] Disabled by default[30] Unknown Yes Yes[3] Unknown Unknown Vulnerable Vulnerable Vulnerable Vulnerable No
Android 5.0-5.0.2 No Enabled by default Yes Yes[30][31] Yes[30][31] Unknown Yes Yes Unknown Unknown Vulnerable Vulnerable Vulnerable Vulnerable No
Android 5.1-5.1.1 No No Yes Yes Yes Unknown Yes Yes Unknown Unknown Not affected Only as fallback
[n 15]
Mitigated Mitigated No
Android 6.0-6.0.1
大致如上所示,android 4.0以下包括4.0不支持,android4.1-4.3 经测试不支持,4.4 以上是支持的。

     所以server要强制配置成TLS1.2得看目标用户是否都是4.4或更高的版本。




你可能感兴趣的:(android,应用开发)