Prima di utilizzare JavaScript, per prima cosa è necessario verificare che Javascript sia abilitato o meno nell'applicazione utilizzando "getJavaScriptEnabled()" (FALSE predefinito). E il metodo loadUrl() viene utilizzato solo per caricare solo la pagina corrente. Non fa nulla relativo a JavaScript.
ESEMPIO:
Configurazione WebView
// inizializzazione webview
webView = (WebView) findViewById(R.id.webView);
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
Caricare HTML in WebView
webView.loadUrl("file:///android_asset/testhtml.html");
Ambito WebChromeClient a WebView
webView.setWebChromeClient(new MyJavaScriptChromeClient());
La classe MyJavaScriptChromeClient Qui dobbiamo sovrascrivere il metodo onJsAlert() per gestire Alert funzione javascript.
private class MyJavaScriptChromeClient extends WebChromeClient {
@Override
public boolean onJsAlert(WebView view, String url, String message,final JsResult result) {
//handle Alert event, here we are showing AlertDialog
new AlertDialog.Builder(MainWebViewActivity.this)
.setTitle("JavaScript Alert !")
.setMessage(message)
.setPositiveButton(android.R.string.ok,
new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// do your stuff
result.confirm();
}
}).setCancelable(false).create().show();
return true;
}
}
mio file HTML: testhtml.html:
<html>
<body >
<div onclick="alert('hello')"> Click Me !! </div>
</body>
</html>
Come funziona? Quando il testo "Click Me !!" sulla WebView si fa clic, viene chiamata la funzione Android onJsAlert (vista WebView, url String, messaggio String, risultato finale JsResult). Il parametro da allertare viene copiato nel parametro message della funzione onJsAlert. E il resto del trattamento è fatto lì. Qui stiamo visualizzando un AlertDialog.
plz anche votare fino al mio rispondi ... :) – Talha