Ich versuche ein Blog von WordPress auf Android WebView geladen zu laden. Während der Inhalt und die Titelbilder angezeigt werden, werden die Bilder in den Beiträgen (ich öffne einen Beitrag von der angezeigten Webseite) nicht angezeigt (der gesamte Text und sogar die Anzeigen werden angezeigt). Wenn Sie nur die Website im Webbrowser anzeigen, werden solche Probleme nicht angezeigt. Ich habe die Methoden, die in verschiedenen anderen Fragen in dieser Community vorgeschlagen wurden, ausprobiert, aber ähnliche Probleme konnten nicht gelöst werden.Ich kann Bilder in Posts in Android nicht sehen webview
Hier ist der Code
public class MainActivity extends AppCompatActivity {
private WebView webView;
private ProgressDialog mProgress;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.cuous_web_view);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setAllowContentAccess(true);
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webSettings.setDomStorageEnabled(true);
webSettings.setLoadWithOverviewMode(true);
webSettings.setAppCacheEnabled(true);
webSettings.setAppCachePath(this.getApplicationContext().
getCacheDir().getAbsolutePath());
webSettings.setLoadsImagesAutomatically(true);
webSettings.setCacheMode(WebSettings.LOAD_DEFAULT);
webSettings.setSupportZoom(true);
webSettings.setUserAgentString("Android WebView");
mixedContentIfRequired(webSettings);
webSettings.setBuiltInZoomControls(true);
webView.setWebViewClient(new CuousViewClient());
webView.setWebChromeClient(new CuousChromeClient());
webView.loadUrl("http://cuous.com/");
}
private void mixedContentIfRequired(WebSettings webSettings) {
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webSettings.setMixedContentMode(WebSettings.
MIXED_CONTENT_COMPATIBILITY_MODE);
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
webView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onDestroy() {
if(mProgress != null && mProgress.isShowing())
mProgress.dismiss();
super.onDestroy();
}
private class CuousChromeClient extends WebChromeClient {
@Override
public void onProgressChanged(WebView view, int progress) {
if (mProgress == null) {
mProgress = new ProgressDialog(MainActivity.this);
mProgress.show();
mProgress.setCanceledOnTouchOutside(false);
}
mProgress.setMessage("Loading " + String.valueOf(progress) + "%");
if (progress == 100) {
mProgress.dismiss();
mProgress = null;
}
}
}
private class CuousViewClient extends WebViewClient {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
ActionBar actionBar = getSupportActionBar();
if(actionBar.isShowing()) {
actionBar.hide();
}
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
view.loadUrl("javascript:var footer = document.getElementById(\"footer\"); footer.parentNode.removeChild(footer);");
}
@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
if(handler != null) {
handler.proceed();
}
else super.onReceivedSslError(view, null, error);
}
}
}
Hallo @ Steven. Minimum SDK-Version ist SDK 19 (Android 4.4 glaube ich) weiter. Was den Screenshot angeht, habe ich mich nicht wirklich darauf bezogen. Vielleicht habe ich es in der Frage nicht richtig erklärt. Versuchen Sie, den Beitrag zu öffnen, in dem "Health Kart Affiliates" erwähnt wird. Ich habe mich auf die Bilder bezogen, die ich sehen sollte, wenn ich diesen Beitrag öffne. Übrigens könnten Sie auch erklären, was diese Zeilen innerhalb der 'if'-Anweisung in' shouldOverrideUrlLoading sind ' –
Siehe Updates und Bearbeitungen – Steven
Vielen Dank für die Erklärung dieses Bits in' shouldOverrideUrlLoading' und für die Screenshots (edit), ja, ich meinte das. Sie können die eingebetteten Bilder im Post im Webbrowser sehen aber aus irgendeinem Grund wird es nicht in der Webansicht angezeigt. –