我正嘗試在Android WebView上加載由Wordpress提供支持的博客。在顯示內容和「標題」圖像時,帖子內的圖像(我的意思是從顯示的網頁中打開帖子)沒有得到顯示(所有文字甚至廣告都顯示出來)。僅在Web瀏覽器上查看網站不會顯示此類問題。我已經嘗試了針對這個社區提出的有關類似問題的其他各種問題中提出的方法,但未能解決我的問題。無法在Android webview中看到帖子內的帖子
下面是代碼
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);
}
}
}
嗨@Steven。最低SDK版本是SDK 19(我認爲是Android 4.4)。至於截圖,我並沒有真正指這一點。但也許我沒有在問題中正確解釋它。試着打開「Health Kart Affiliates」提到的帖子,我指的是當我打開該帖子時應該看到的圖片。 順便說一下,您是否還可以解釋「shouldOverrideUrlLoading中'if語句中的那些行'是什麼意思? –
查看更新和編輯 – Steven
非常感謝您解釋'shouldOverrideUrlLoading'中的那一點,以及截圖(編輯),是的,我指的是這個,您可以在Web瀏覽器中看到帖子中的嵌入圖像但由於某種原因,它並沒有顯示在webview中 –