Изображения не загружаются в android webview
Я пытаюсь загрузить сайт в веб-представлении приложения для 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 ?
3 ответов
добавить
web.getSettings().setDomStorageEnabled(true);
Это должно работать. Остальное оставьте как есть.
хотя предостережение, я не думаю, что его рекомендуется включить по умолчанию, его отключено по умолчанию. Этот параметр позволяет веб-сайту хранить и повторно использовать данные. Таким образом, изображения не загружаются, потому что этому сайту не разрешено хранить их на вашем устройстве. Это открывает банку проблем безопасности.
Я подозреваю, что проблема может быть вашим клиентом 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();
}
});
просто используйте эту строку кода. Думаю, ваша проблема будет решена.
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setLoadsImagesAutomatically(true);
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);