1

I'm using WebView but I have a weird problem. Let's say I loaded youtube.com using loadUrl(...), it's loading, but if I again load same page, it isn't loading correctly, not firing even onPageFinished(...)

Edit: When I load or any other site that interactive and has js stuff, it's not loading twice. EVEN if I create a new instance of 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)

Manifest:

 <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"
    >

Here is webView settings:

    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); 

What can cause to this problem? WebView is the main functionality of my app and it was working like a charm until this error.

I am also using WebViewClient and WebChromeClient to override these methods.

onProgressChanged, onReceivedTitle, onCloseWindow, onCreateWindow, onGeolocationPermissionsShowPrompt, onConsoleMessage, onReceivedSslError,  onPageFinished, onPageStarted, shouldOverrideUrlLoading  
Lazy
  • 1,807
  • 4
  • 29
  • 49

1 Answers1

0

Use the settings below.

mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setUseWideViewPort(true);        
Pang
  • 9,564
  • 146
  • 81
  • 122
Krunal Patel
  • 61
  • 3
  • 12