Android WebView阻止从https重定向到http

Ken*_*eth 14 https android webview

我有一个解决方案,我的Android WebView需要先打开一个https网址,然后它会被重定向到一个http网址(它可能是从https网站尝试一个http POST).这不起作用,我的Android调试日志说:

02-20 11:04:45.079 8538-8538 /?E/WebViewCallback:阻止的URL:[已阻止]' https:// xxx / '的页面是通过HTTPS加载的,但是将数据提交到' http:// yyy ' 的不安全位置:此内容也应该通过HTTPS.

WebView中是否有任何允许此行为的配置选项?

更多信息:它似乎是Android SDK中的行为更改.很久以前编译的客户没有任何投诉.

Ant*_*n G 31

Lollipop(API 20)中混合的http/https内容的默认WebView设置发生了变化.有关详细信息,请参阅https://datatheorem.github.io/android/2014/12/20/webviews-andorid-lollipop/.

要允许https重定向到http,您需要将混合内容模式设置为MIXED_CONTENT_ALWAYS_ALLOW

 if (Build.VERSION.SDK_INT >= 21) {
        webview.getSettings().setMixedContentMode( WebSettings.MIXED_CONTENT_ALWAYS_ALLOW );
    }
Run Code Online (Sandbox Code Playgroud)

请注意,从安全角度来看,设置MIXED_CONTENT_ALWAYS_ALLOW是不好的,正如您在答案中所述,最好在两个站点上都支持https.

但对于那些无法控制网站的人来说,这应该有效.