2016-05-12 12 views
1

バックグラウンドでAngularを使用するコードバーアプリ(cordova 5、ios 4)があります。 リモートサーバーからhttps経由でダウンロードしている画像(jpg)を表示する必要があります。 しかし、画像は常にwebviewによって壊れたものとして表示されます。iOSのCordovaで壊れた画像が表示されます

  • HTTPSのURLから直接画像を表示する:私は絵を含める2つのバリエーションを試してみました

    <img ng-src="{{picture}}"> 
    

    : 画像は、次のように含まれています。デスクトップブラウザとiPhone Safariブラウザの両方でURLを開くことができ、正しく表示されます。コードバウでは、壊れたものとして表示されます。

  • ファイル転送を介してイメージをダウンロードし、次にファイル://リンクを介してローカルイメージをダウンロードします。同じ問題。

私が確認しているもの:

  • を、私は、ダウンロード自体が作品のブラウザ
  • でそれを示すことができるよう画像自体が正しい、ファイル転送はコルドバが設定されている
  • 正しいですかホワイトリストの問題ではないようにすべてのリソースを許可するようにします
  • 角のサニタイズも調整されているので、htmlのリンクは実際には正しいです。すなわち変更されていません。
  • サーバがwget経由で確認した正しいコンテンツタイプを送信しています

私はここでアイデアが不足しています。

+0

ファイル名が 'ng-src'で正しいことを確認してください。大文字と小文字が区別される場合があります。 – johnborges

+0

私はコードァから直接ファイル名を取得するので、問題にはなりません。いずれの場合も(ファイル名、https)、SafariのWebインスペクタは画像のロード中に問題が発生したことを通知します。残念ながら、それ以上の情報なし。 – Carsten

+0

正確なエラーメッセージを投稿できますか? – johnborges

答えて

0

iOS(UIWebview)でのCordovaのブラウザビューはスタンドアロンブラウザよりも厳しいようです。 wgetで画像をダウンロードしようとしましたが、内容を見ました。 jpgヘッダーは表示されませんでしたが、unix fileコマンドでテキストとして識別されました。
httpヘッダーにはContent-Lengthも表示されませんでした。

ソリューション
サーバー側のロジック(春)[]バイトを返されたが、私はそれへの変換が含まれていませんでした。だから私はByteArrayHttpMessageConverterを含めるようにWebアプリケーションの残りの設定によって変更されました:

<mvc:annotation-driven> 
    <mvc:message-converters> 
     <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter"> 
     </bean>   
     <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">    
     </bean> 
    </mvc:message-converters>  
</mvc:annotation-driven> 

それは働いた。ブラウザは、見逃しているファイルのヘッダやエンコーディングを修正しているようですが、UIWebviewはこれをしません。

関連する問題