2015-04-27 9 views
9

Sto provando a caricare il sito in una visualizzazione web di app Android.Le immagini che non si caricano nella web view di Android

Il sito viene caricato senza le immagini, tutte le immagini dal sito non vengono caricate quale potrebbe essere il problema.

Il codice per onCreate è mostrato di seguito.

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_my); 
    String url = getResources().getString(R.string.web_url); 
    web = (WebView) findViewById(R.id.webview01); 
    progressBar = (ProgressBar) findViewById(R.id.progressBar1); 

    web.setWebViewClient(new myWebClient()); 
    web.getSettings().setJavaScriptEnabled(true); 
    web.getSettings().setUseWideViewPort(true); 
    web.loadUrl(url); 
} 

Una nota di più, quando ho impostato javascript per falsi utilizzando web.getSettings() setJavaScriptEnabled (false).; le immagini caricano dando un avvertimento che javascript deve essere abilitato per eseguire correttamente il sito.

Questo sito è protetto con CloudFlare, potrebbe essere questa la ragione per cui le immagini non sono caricate nella vista web di Android?

risposta

14

Aggiungi

web.getSettings().setDomStorageEnabled(true); 

Questo dovrebbe funzionare. Mantieni il resto così com'è.

Anche se un avvertimento, non penso che si consiglia di abilitare questo di default, è disabilitato di default. L'impostazione consente a un sito Web di memorizzare i dati e riutilizzarli. Quindi le immagini non vengono caricate, perché questo sito non è stato autorizzato a memorizzarle sul tuo dispositivo. Questo apre una scatola di problemi di sicurezza.

+0

Grazie per la risposta che cercherò e vedere – Ninad

+0

Hi Con questo metodo il sito stesso non caricare – Ninad

+0

aggiornato, provare questo fuori. Dovrebbe funzionare – Slartibartfast

2

Ho il sospetto che il problema potrebbe essere il client webview. Utilizzare invece:

webView.setWebViewClient(new WebViewClient() { 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       Log.i(TAG, "Processing webview url click..."); 
       view.loadUrl(url); 
       return true; 
      } 

      public void onPageFinished(WebView view, String url) { 
       Log.i(TAG, "Finished loading URL: " +url); 
       if (pDialog.isShowing()) { 
        pDialog.dismiss(); 
       } 
      } 

      public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
       Log.e(TAG, "Error: " + description); 
       Toast.makeText(FundCardWeb.this, "Page Load Error" + description, Toast.LENGTH_SHORT).show(); 

      } 
     }); 
+0

Ciao questo dà un avvertimento che javascript deve essere abilitato e se abilito javascript le immagini non caricano – Ninad

-1

Basta usare questa riga di codice. Penso che il tuo problema sarà risolto.

 webView.getSettings().setDomStorageEnabled(true); 
    webView.getSettings().setAppCacheEnabled(true); 
    webView.getSettings().setLoadsImagesAutomatically(true); 
    webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); 
Problemi correlati