React Native:Android WebView 为某些网站和某些设备返回空白屏幕

grm*_*mph 6 https networking android android-webview react-native

几个月来,我有一个可运行的 react-native 应用程序,其中 WebView 指向 HTTPS 站点。这一切都很好,但突然 WebView 开始返回一个空白页面而不是 HTTPS 站点。

从调试中,我发现:

  • 这仅发生在我的设备上(我的用户均未报告此问题)

  • 某些网站会返回空白屏幕,而某些网站会正确呈现。(例如 google.com 会呈现而 amazon.com 会返回一个空白屏幕)

  • 通过在 chrome 检查器中调试 WebView,似乎每次对这些站点之一(例如 amazon.com)进行 GET 调用时,该调用都会在 1 秒左右后取消。

  • 这些网站在我的 android-chrome 浏览器上被正确调用、打开和呈现。

似乎我的设备中的某些东西阻止了 WebViews 中的某些网站,可能是设置或应用程序。会是什么呢?

我正在使用 LG G4,尝试使用 API 版本 19 和 23。

if-*_*tch 2

一定是因为开发模式下私有SSL错误。如果您在调试模式下看到控制台日志,那么您可以看到一行内容 Failed to validate the certificate chain, error: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.

如果是,则只需添加一个文档中未提及的新道具即可。尽管存在 SSL 错误,该属性ignoreSslError={true}仍将强制 WebView 加载网站。

前任 - <WebView ignoreSslError={true} source={{uri: 'https://www.google.com'}} />

来源: https: //github.com/facebook/react-native/pull/9680

  • 上面对 React-Native 包装做了同样的事情。您还可以使用第三方包装器 https://github.com/ShivamKJJW/react-native-yunpeng-webview (3认同)