Crosswalk XWalkView:安全拒绝请求(Android 7.0及更高版本)

Aar*_*ron 7 android crosswalk xwalkview

我使用Crosswalk XWalkView作为我的应用程序的webview,现在我正在加载一些具有有效证书的网站,并且在Android版本<7中工作正常.

但是对于Android 7.0及更高版本,我得到了这个Toast消息,请求REQUEST拒绝安全

和这个日志

06-12 17:46:46.024 22518-22731/? I/X509Util: Failed to validate the certificate chain, error: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
Run Code Online (Sandbox Code Playgroud)

我读了一些类似的问题,但是发布的解决方案是在Cordova(见这个).我正在使用原生的android,我想知道我怎么能在我的结尾(本机)做到这一点.

引用链接

我通过将以下代码段的最后3行添加到config.xml来解决这个问题:

<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
<allow-navigation href="data:*" />
Run Code Online (Sandbox Code Playgroud)

谢谢!

基本上我想做的就是像Cordova那样有一些白名单,但我不知道如何使用Native Android和Crosswalk实现这一目标.首先,我不知道在原生android中是否存在config.xml(在cordova中),现在我真的需要知道如何在我的项目中实现它.

Aar*_*ron 2

我能够通过遵循android 网络安全配置中的步骤来解决这个问题,我信任额外的证书。

基本上,我第一次尝试时,在我的 network_security_config.xml 中提供了错误的 SSL 证书(我假设它是网站本身,但导致错误的是网站中加载的 Javascript 文件的主机)。

website_ca 是 SSL 证书文件

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config>
        <trust-anchors>
            <certificates src="@raw/website_ca"/>
            <certificates src="system"/>
        </trust-anchors>
    </base-config>
</network-security-config>
Run Code Online (Sandbox Code Playgroud)

现在效果很好。