Crosswalk XWalkView:安全请求被拒绝(Android 7.0 及更高版本)
Crosswalk XWalkView : Request was denied for Security (Android 7.0 and greater)
我正在使用 Crosswalk XWalkView 作为我的应用程序的 webview,现在我正在加载一些具有有效证书并且在 Android 版本 < 7 中运行良好的网站。
但是对于 Android 7.0 及更高版本,我收到了这条信息 REQUEST WAS DENIED FOR SECURITY
和这个日志
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.
我读过一些类似的问题,但发布的解决方案是在 Cordova 中(参见 this)。我正在使用本机 android,我想知道如何在我这边(本机)执行此操作。
引自 link
I solved this by adding the last 3 lines of the following snippet to config.xml:
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
<allow-navigation href="data:*" />
谢谢!
基本上我想做的是像 Cordova 那样拥有一些白名单,但我不知道如何使用 Native Android 和 Crosswalk 来实现这一点。首先,我不知道原生 android 中是否有 config.xml(在 cordova 中有),现在我真的需要知道如何在我的项目中实现它。
我可以按照 android network security config 我信任额外证书的步骤解决这个问题。
基本上,我第一次尝试时提供了错误的 SSL 证书(我假设它是网站本身,但导致错误的是正在加载 Javascript 文件的主机网站)在我的 network_security_config.xml.
website_ca is the SSL certificate file
<?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>
现在可以正常使用了。
我正在使用 Crosswalk XWalkView 作为我的应用程序的 webview,现在我正在加载一些具有有效证书并且在 Android 版本 < 7 中运行良好的网站。
但是对于 Android 7.0 及更高版本,我收到了这条信息 REQUEST WAS DENIED FOR SECURITY
和这个日志
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.
我读过一些类似的问题,但发布的解决方案是在 Cordova 中(参见 this)。我正在使用本机 android,我想知道如何在我这边(本机)执行此操作。
引自 link
I solved this by adding the last 3 lines of the following snippet to config.xml:
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
<allow-navigation href="data:*" />
谢谢!
基本上我想做的是像 Cordova 那样拥有一些白名单,但我不知道如何使用 Native Android 和 Crosswalk 来实现这一点。首先,我不知道原生 android 中是否有 config.xml(在 cordova 中有),现在我真的需要知道如何在我的项目中实现它。
我可以按照 android network security config 我信任额外证书的步骤解决这个问题。
基本上,我第一次尝试时提供了错误的 SSL 证书(我假设它是网站本身,但导致错误的是正在加载 Javascript 文件的主机网站)在我的 network_security_config.xml.
website_ca is the SSL certificate file
<?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>
现在可以正常使用了。