ich bin tring in webview seite von lokalen speicher zu zeigen, es sieht ok wenn seite geladen ersten mal, aber wenn ich webview entfernen und fügen es wieder es aussieht wie auf dem Bild (für 4.4+, auf früheren android-Versionen nur schwarzer Bildschirm):Android (4.4+) WebView zeigt nicht iframe page content zweite zeit laden
webview progrommatcaly jedes Mal das Hinzufügen (app Kontext verwendet wird), schalten sie Cache, Cookies, und entfernen sie sie in auf vernichten .
hier ist mein Code:
mLayout = (LinearLayout) view.findViewById(R.id.linear_main);
mWebView = new WebView(getActivity().getApplicationContext());
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setSaveFormData(false);
mWebView.setInitialScale(1);
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setUseWideViewPort(true);
mWebView.getSettings().setAppCacheEnabled(false);
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
mWebView.getSettings().setDatabaseEnabled(false);
mWebView.getSettings().setDomStorageEnabled(false);
mWebView.getSettings().setGeolocationEnabled(false);
mWebView.getSettings().setSaveFormData(false);
mWebView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
mWebView.setWebChromeClient(new WebChromeClient());
if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) {
mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);
}
mWebView.getSettings().setPluginState(WebSettings.PluginState.ON);
mWebView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND);
mLayout.addView(mWebView,0);
/// then display page by call
public void display(String path){
Map<String, String> noCacheHeaders = new HashMap<String, String>(2);
noCacheHeaders.put("Pragma", "no-cache");
noCacheHeaders.put("Cache-Control", "no-cache");
mWebView.loadUrl(path, noCacheHeaders);
}
/// after display destroy fragment with the WebView
@Override
public void onDestroy() {
super.onDestroy();
CookieSyncManager.createInstance(getActivity().getApplicationContext());
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.removeAllCookie();
mWebView.removeAllViews();
mWebView.destroyDrawingCache();
mWebView.clearDisappearingChildren();
mWebView.clearFormData();
mWebView.clearHistory();
mWebView.clearCache(true);
mWebView.loadUrl("about:blank");
mWebView.pauseTimers();
mLayout.removeAllViews();
mWebView.destroy();
mWebView = null;
getActivity().getApplicationContext().deleteDatabase("webview.db");
getActivity().getApplicationContext().deleteDatabase("webviewCache.db");
}
könnten Sie bitte beraten, was sonst muss ich versuchen =)
versuchen zu laden Videos? – Sush
Nein, ein Frame ist Google-Karte, eine für die Webseite und 2 für Bilder – user5599807
Wen es wieder hinzufügen, laden Sie es mit URL? – Sush