React Native Android - 图像组件(网络) - 不会加载https

时间:2016-02-01 23:53:15

标签: android react-native

我无法通过https加载任何图片。我正在使用React Native 0.18,并且实现非常简单,例如在亚马逊使用图像:

会工作:

<Image style={styles.avatar} source={{uri: "http://ecx.images-amazon.com/images/I/71JxCVQ5ozL.jpg"}} />

无效:

<Image style={styles.avatar} source={{uri: "https://images-na.ssl-images-amazon.com/images/I/41KoE8etwlL.jpg"}} />

有没有人见过这个?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

有类似的问题。我的是由于某些网站使用的SSL / TSL版本以及较旧的Android OS(TLS v1.2)的问题。来自特定站点的图像将显示在模拟器上,但不会显示在实际的Android设备上。

  1. 我使用Image的onError方法记录实际错误。请注意,如果您使用Web调试器,则不会看到此错误。

          onError={e => {
            console.log(e);
          }}
    
  2. 查看了在Android调试桥(ADB)上记录的实际错误,该错误是:

    “错误:javax.net.ssl.SSLProtocolException:SSL握手已中止:”

显然这是旧版Android操作系统存在的问题。

我点击了链接here,以解决ssl的问题。现在可以正常运行

请注意,对于某些版本的React Native,Image组件的onError方法不会在android设备上触发。您可以使用here

中的polyfill“ react-native-android-image-polyfill”