Java Android(4.4+;)网络视图第二次加载时不显示iframe页面内容

Java Android(4.4+;)网络视图第二次加载时不显示iframe页面内容,java,android,iframe,cookies,webview,Java,Android,Iframe,Cookies,Webview,我试图在本地存储的webview页面中显示,第一次加载页面时看起来还可以,但是当我删除webview并再次添加它时,它看起来就像图片上显示的一样(对于4.4+,在以前的android版本中只是黑屏): webview每次添加progrommacaly(使用应用程序上下文),关闭缓存、cookie,并在销毁时将其删除 这是我的密码: mLayout = (LinearLayout) view.findViewById(R.id.linear_main); mWebView =

我试图在本地存储的webview页面中显示,第一次加载页面时看起来还可以,但是当我删除webview并再次添加它时,它看起来就像图片上显示的一样(对于4.4+,在以前的android版本中只是黑屏):

webview每次添加progrommacaly(使用应用程序上下文),关闭缓存、cookie,并在销毁时将其删除

这是我的密码:

    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");
}
mLayout=(LinearLayout)view.findViewById(R.id.linear\u main);
mWebView=newWebView(getActivity().getApplicationContext());
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setSaveFormData(false);
mWebView.setInitialScale(1);
mWebView.getSettings().SetLoadWithOverview模式(true);
mWebView.getSettings().setUseWideViewPort(true);
mWebView.getSettings().setAppCacheEnabled(false);
mWebView.getSettings().setCacheMode(WebSettings.LOAD\u NO\u缓存);
mWebView.getSettings().setDatabaseEnabled(false);
mWebView.getSettings().setDomStorageEnabled(false);
mWebView.getSettings().setGeolocationEnabled(false);
mWebView.getSettings().setSaveFormData(false);
mWebView.setLayoutParams(新的LayoutParams(LayoutParams.MATCH_父级,
LayoutParams.MATCH_PARENT));
setWebChromeClient(新的WebChromeClient());
if(Build.VERSION.SDK\u INT>=VERSION\u CODES.JELLY\u BEAN){
mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);
}
mWebView.getSettings().setPluginState(WebSettings.pluginInstate.ON);
mWebView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND);
mLayout.addView(mWebView,0);
///然后按调用显示页面
公共无效显示(字符串路径){
Map noCacheHeaders=newhashmap(2);
noCacheHeaders.put(“Pragma”,“无缓存”);
noCacheHeaders.put(“缓存控制”、“无缓存”);
loadUrl(路径,noCacheHeaders);
}
///使用WebView显示销毁片段后
@凌驾
公共无效onDestroy(){
super.ondestory();
createInstance(getActivity().getApplicationContext());
CookieManager CookieManager=CookieManager.getInstance();
cookieManager.removeAllCookie();
mWebView.RemoveAllView();
mWebView.destroyDrawingCache();
mWebView.ClearObsearingChildren();
mWebView.clearFormData();
mWebView.clearHistory();
mWebView.clearCache(true);
loadUrl(“关于:空白”);
mWebView.pauseTimers();
mllayout.removeallview();
mWebView.destroy();
mWebView=null;
getActivity().getApplicationContext().deleteDatabase(“webview.db”);
getActivity().getApplicationContext().deleteDatabase(“webviewCache.db”);
}
你能告诉我还有什么需要尝试的吗

mWebView.pauseTimers();
将数据保存在某些静态变量中。。。所以,我破坏了webview并创建了一个新的,停止播放iFrame并不重要。 所以,我已经删除了这条线,它现在可以工作了

使用此标志时要小心


顺便说一句,我猜这可能与内存泄漏问题有关。。但这是另一个故事

你在尝试加载视频吗?不,一个是谷歌地图,一个是网页,两个是图片我们可以再添加一次你是用url加载的吗?不,忘了提一下,我是从本地文件加载的(每次),比如file:///page.htmlgetActivity().getApplicationContext()使用活动上下文并检查