Изображения не загружаются в андроид

Я пытаюсь загрузить сайт в веб-представление приложения Android.

Сайт загружается без изображений, все изображения с сайта не загружаются, что может быть проблемой.

Код для onCreate показан ниже.

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

Еще одно замечание, когда я устанавливаю javascript в false с помощью web.getSettings(). setJavaScriptEnabled (false); загрузка изображений дает предупреждение о том, что javascript должен быть включен для правильного запуска сайта.

Этот сайт защищен CloudFlare, может ли это быть причиной того, что изображения не загружаются в веб-представление Android?

Ответ 1

Добавить

web.getSettings().setDomStorageEnabled(true);

Это должно сработать. Оставайтесь как есть.

Несмотря на оговорку, я не думаю, что ее рекомендуется включить по умолчанию, по умолчанию она отключена. Этот параметр позволяет веб-сайту хранить данные и повторно использовать их. Таким образом, изображения не загружаются, потому что этому сайту не разрешено хранить их на вашем устройстве. Это открывает проблему безопасности.

Ответ 2

Я подозреваю, что проблема может быть вашим клиентом webview. Используйте это вместо:

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

            }
        });

Ответ 3

Просто используйте эту строку кода. Я думаю, ваша проблема будет решена.

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

Ответ 4

Просто этого будет достаточно

webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);