Aktivieren Allgemeine JavaScript in WebViewClient

Während der Suche nach einer Antwort in google, es scheint, dass ich bin nicht der einzige, stecken mit einem problem, das scheint unmöglich zu lösen.

Ich es geschafft haben, erstellen Sie eine WebView mit einem benutzerdefinierten WebViewClient - dies macht es möglich für mich, um einen processdialog und zeigt eine Fehlermeldung, wenn eine URL konnte nicht geladen werden.

Aber das schafft ein problem mit JavaScript. Die URL, die ich bin laden hat einige JavaScript, die änderungen einige HTML-Elemente CSS-Stile (ein-oder ausblenden element) oder leitet Sie an einen anderen Speicherort onclick - oder vielleicht sogar wollen, ist zu zeigen, eine alert-box. Aber mit der " WebViewClient keiner dieser arbeiten.

Dies ist, wie ich eine Seite zu laden:

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 = "<html><body><strong>" + getString(R.string.lost_connection) + "</body></html>";
                    myWebView.loadData(summary, "text/html", "utf-8");   
                }              

             }); //End WebViewClient

            myWebView.loadUrl(url);     
        }

Dieser konnte wahrscheinlich gemacht werden, die in einer INTELLIGENTEREN Weg, aber ich bin neu bei Java und Android-Entwicklung...

Ist es möglich für mich zum aktivieren von JavaScript für den WebViewClient überhaupt?
Entfernen des WebViewClient löst das problem, aber dann kann ich nicht fangen die Ereignisse an, wenn die Seite fehlerhaft oder fertig geladen ist.

InformationsquelleAutor Repox | 2011-02-23
Schreibe einen Kommentar