2015-09-24 18 views
5
  1. fare un app con UIWebView che si aprono una pagina web con stili relativi a protocollo & immagini, come ad esempio <img src="//example.com/image.png"> (esempi per http o https).UIWebView non carica le immagini da URL relativo a protocollo

  2. Ignora il processo di caricamento della pagina tramite il tuo NSURLConnection personalizzato, this way.

Risultato: non visualizzerà le immagini! Tuttavia, Safari e altri browser li mostrano correttamente ...

risposta

3

Ho ispezionato la pagina aperta in WebView e ho visto richieste strane lì. Sembravano URL normali, ma con lo schema applewebata, ad es. applewebdata://art-u1.infcdn.net/articles_uploads/2/2586/thumb/3Dtouch%20Main-665x.png. Sìì! Non conosce lo schema di "base" per l'URL relativo //art-u1.infcdn.net/articles_uploads/2/2586/thumb/3Dtouch%20Main-665x.png e gli dà lo schema falso di Apple. Quindi ... il problema è qui:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{ 
    [m_webView loadData:webdata 
       MIMEType:@"text/html" 
     textEncodingName:@"UTF-8" 
       baseURL:nil]; /// WTF! 
} 

Soluzione: basta salvare l'URL iniziale per qualche m_currentPageUrl quando si avvia la richiesta, e poi passarlo al punto in cui è destinata ad essere. :)