WebView没有加载一些页面两次

时间:2015-10-31 11:21:53

标签: android webview

我正在使用WebView,但我有一个奇怪的问题。假设我使用loadUrl(...)加载了youtube.com,它正在加载,但是如果我再次加载相同的页面,它就无法正确加载,甚至不会触发onPageFinished(...)

编辑:当我加载或任何其他具有交互性且具有js内容的网站时,它不会加载两次。 即使我创建了一个新的WebView实例。

Load youtube.com -> OK
Load youtube.com again -> Error, onPageFinished not called, white page
Load google.com -> OK
GoBack -> Youtube.com loaded but still problematic. (Only header and a few views)

清单:

 <application
        android:allowBackup="true"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:configChanges="keyboard|keyboardHidden|screenSize"
        android:largeHeap="true"
        android:vmSafeMode="true"
        android:hardwareAccelerated="true"
    >

以下是webView设置:

    mWebView.setDrawingCacheBackgroundColor(0x00000000);
    mWebView.setFocusableInTouchMode(true);
    mWebView.setFocusable(true);
    //mWebView.setAnimationCacheEnabled(false);
    mWebView.setDrawingCacheEnabled(false);
    mWebView.setWillNotCacheDrawing(true);
    //mWebView.setAlwaysDrawnWithCacheEnabled(false);
    mWebView.setScrollbarFadingEnabled(true);
    mWebView.setSaveEnabled(true);

    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setDomStorageEnabled(true);
    mWebView.getSettings().setBuiltInZoomControls(true);
    mWebView.getSettings().setDisplayZoomControls(false);
    mWebView.getSettings().setUseWideViewPort(true);
    mWebView.getSettings().setSaveFormData(PrefsManager.getInstance().isSaveAutoFill());
    mWebView.getSettings().setAllowFileAccess(true);
    mWebView.getSettings().setSupportMultipleWindows(true);

   mWebView.getSettings().setLoadsImagesAutomatically(PrefsManager.getInstance().isAutoLoadImages());
    mWebView.getSettings().setGeolocationEnabled(true);
    mWebView.getSettings().setDomStorageEnabled(true);
    mWebView.getSettings().setAllowContentAccess(true);
    mWebView.getSettings().setAllowFileAccess(true);
    mWebView.getSettings().setAppCacheEnabled(true);
    mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);
    mWebView.getSettings().setAllowContentAccess(true); 

导致这个问题的原因是什么? WebView是我的应用程序的主要功能,在此错误之前它就像魅力一样。

我也在使用WebViewClient和WebChromeClient来覆盖这些方法。

onProgressChanged, onReceivedTitle, onCloseWindow, onCreateWindow, onGeolocationPermissionsShowPrompt, onConsoleMessage, onReceivedSslError,  onPageFinished, onPageStarted, shouldOverrideUrlLoading  

1 个答案:

答案 0 :(得分:0)

使用以下设置。

mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setUseWideViewPort(true);