2016-07-01 11 views
5

http uriソースとしてiOSシミュレータにイメージをロードしたいとします。しかし、画面上に何も表示されていないので、インスペクタで見えるようにすることができます。 Androidで同じコードを読み込むとうまく動作し、httpの代わりにhttps uriを使用するとうまくいきます。httpが動作しない間に、https上のReact-nativeローディングイメージが動作する

例コード:

render() { 
    return ( 
    <View> 
    <Image 
     source={{uri:https://facebook.github.io/react/img/logo_og.png'}} // works 
    // source={{uri: http://facebook.github.io/react/img/logo_og.png'}} // doesn't work 
     style={{width: 400, height: 400}} 
    /> 
    </View> 
); 
} 

答えて

5

問題は、あなたがそれはAppleが要求されるなどのHTTP接続からではなくhttps接続からイメージをロードしようとしているということです。 httpの代わりにhttpsを使用する別のuriでコードが動作する場合に試してください。 Androidでは、httpまたはhttpsのどちらでも問題なく動作します。 https://github.com/facebook/react-native/issues/8520およびhttp://www.techrepublic.com/article/wwdc-2016-apple-to-require-https-encryption-on-all-ios-apps-by-2017/で続きを読む。

本当にhttpで何かをロードしたいのであれば、info.plistファイルを編集してそこに例外を追加することができます。ここではより詳細な情報https://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/

0

は、Info.plistの

<key>NSAppTransportSecurity</key> 
<dict> 
<!--Include to allow all connections (DANGER)--> 
    <key>NSAllowsArbitraryLoads</key> 
    <true/> 
</dict> 
に追加します
関連する問題