如何在React本机Webview上加载自签名网站

时间:2017-09-25 21:45:49

标签: react-native android-webview

我想在React Native上使用WebView加载https网址。 但是,它不会加载。 我不想在设备的Trust Source上手动添加CA.

任何人都知道解决方案吗? 我很好,即使它需要一些原生实现。

2 个答案:

答案 0 :(得分:2)

我对此有一种解决方法(这很糟糕,很hacky,但是可以用)

转到node_modules / react-native-webview / android / src / main / java / com / reactnativecommunity / webview / RNCWebViewManager.java

将这些添加到顶部的导入中:

import android.net.http.SslError;
import android.webkit.SslErrorHandler;

然后在807行附近添加此代码(在onRecievedHttpError下面):

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

Bam!现在,您将不再检查ssl错误。不过要当心,这很危险

答案 1 :(得分:0)

实际上确实如此。问题可能是,你需要从样式定义高度。你只需要调用url,而不需要部署任何CA的东西。 WebView不会自动更改高度。

<WebView
    source={{ uri: https//www.sample.com }}
    style={{ width: 300, height: 300 }}
/>