title: Enabling general JavaScript in WebViewClient
body: <p>While searching for an answer in google, it seems that I'm not the only one stuck with a problem that seems impossible to solve.</p>
  
  <p>I've managed to create a WebView with a custom WebViewClient - this makes it possible for me to have a processdialog and show an error message if an URL couldn't be loaded.</p>
  
  <p>But this creates a problem with JavaScript. The URL I'm loading has some JavaScript which changes some HTML elements CSS styles (showing or hiding element) or redirects to another location onclick - or maybe even want's to show an alert box. But by using the WebViewClient none of those are working.</p>
  
  <p>This is how I load a page:</p>
  
  <pre><code>public void loadUrl(String url)
  {
      final ProgressDialog dialog = ProgressDialog.show(myActivity.this, "",  getString(R.string.loading), true);
              final WebView myWebView = (WebView) findViewById(R.id.webview);
              myWebView.setVerticalScrollBarEnabled(false);
              myWebView.setHorizontalScrollBarEnabled(false);
              WebSettings webSettings = myWebView.getSettings();
              webSettings.setJavaScriptEnabled(true);                                         
  
  
              myWebView.setWebViewClient(new WebViewClient() 
              {
                  @Override
                  public boolean shouldOverrideUrlLoading(WebView view, String url) 
                  {
                      Toast.makeText(myActivity.this, url, Toast.LENGTH_SHORT).show(); //Debugging purposes
                  if (url.endsWith(".mp4")) 
                  {
                          Intent intent = new Intent(Intent.ACTION_VIEW);
                          intent.setDataAndType(Uri.parse(url), "video/mp4");
                          view.getContext().startActivity(intent);  
                  }
                  else
                  {                           
                          view.loadUrl(url);
                      }
  
                      return true;
                  }
  
                  public void onPageFinished(WebView view, String url) 
                  {
                      //Toast.makeText(myActivity.this, "Oh no!", Toast.LENGTH_SHORT).show();
                      dialog.dismiss();
                  }
  
                  public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) 
                  {
                      Toast.makeText(myActivity.this, description, Toast.LENGTH_SHORT).show();
                      String summary = "&lt;html&gt;&lt;body&gt;&lt;strong&gt;" + getString(R.string.lost_connection) + "&lt;/body&gt;&lt;/html&gt;";
                      myWebView.loadData(summary, "text/html", "utf-8");   
                  }              
  
               }); //End WebViewClient
  
              myWebView.loadUrl(url);     
          }
  </code></pre>
  
  <p>This could probably be done in a smarter way, but I'm new at both Java and Android development...</p>
  
  <p>Is it possible for me to enable the JavaScript for the WebViewClient at all?
  Removing the WebViewClient solves the problem, but then I can't catch events when the page errors or is finished loading.</p>