2015-04-27 13 views
9

Ich versuche, die Website in einer Android App Web-Ansicht zu laden.Bilder werden nicht geladen in android webview

Die Website lädt ohne die Bilder, alle Bilder von der Website sind nicht geladen, was könnte das Problem sein.

Der Code für onCreate wird unten angezeigt.

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); 
} 

Noch eine Anmerkung, wenn ich Javascript falsch mit web.getSettings() gesetzt setJavaScriptEnabled (false). Die Bilder laden mit der Warnung, dass JavaScript aktiviert werden sollte, um die Site ordnungsgemäß auszuführen.

Diese Seite ist mit CloudFlare geschützt, könnte dies der Grund sein, dass Bilder nicht in der Android-Webansicht geladen sind? In

Antwort

14

web.getSettings().setDomStorageEnabled(true); 

Diese funktionieren sollte. Behalte den Rest so wie er ist.

Obwohl ein Vorbehalt, ich denke nicht, es empfohlen, dies standardmäßig zu aktivieren, ist es standardmäßig deaktiviert. Die Einstellung ermöglicht einer Website, Daten zu speichern und wiederzuverwenden. Daher werden die Bilder nicht geladen, da diese Website sie nicht auf Ihrem Gerät speichern darf. Dies eröffnet eine Reihe von Sicherheitsbedenken.

+0

Danke für die Antwort ich das versuchen wird, und – Ninad

+0

Hallo Mit dieser Methode die Website sehen sich nicht – Ninad

+0

diese aktualisiert nicht geladen, ausprobieren. Sollte funktionieren – Slartibartfast

2

Ich vermute, dass das Problem Ihr Webview-Client sein könnte. Verwenden Sie stattdessen:

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

Hi dies gibt eine Warnung, dass Javascript aktiviert werden muss und wenn ich Javascript aktiviere, werden die Bilder nicht geladen – Ninad

-1

Verwenden Sie einfach diese Codezeile. Ich denke, dein Problem wird gelöst sein.

 webView.getSettings().setDomStorageEnabled(true); 
    webView.getSettings().setAppCacheEnabled(true); 
    webView.getSettings().setLoadsImagesAutomatically(true); 
    webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); 
Verwandte Themen