webview tiene múltiples formas de interactuar con html5
1. Primero comprenda la vista web.
La introducción original a webview es la siguiente: Vista que muestra la página web. Según esta clase, puede iniciar su propio navegador web o simplemente mostrar contenido en línea en su Actividad. Según esta clase, puede desarrollar su propio navegador web o simplemente mostrar contenido en línea en una Actividad. Utiliza el motor de renderizado WebKit para mostrar páginas web e incluye métodos para navegar hacia adelante y hacia atrás en el historial, acercar y alejar, realizar búsquedas de texto y más.
A partir del contenido anterior, debes comprender su función básica, que es mostrar páginas web. La razón por la que digo que webview es poderoso es que puede interactuar con js muy fácilmente y el proceso de interacción es muy simple.
2. ¿Qué puede hacer la vista web?
① webView puede usar HTML para el diseño de la interfaz. Aunque hay relativamente pocas personas que lo usan ahora, creo que definitivamente funcionará cuando algunos clientes necesiten mezclar y organizar gráficos complejos (los gráficos se generan dinámicamente). es una buena elección.
② Mostrar la página directamente, que es, por supuesto, su función más básica.
③Interactuar con js. (Si su base js es mejor que la base java, entonces también es una buena opción realizar algún procesamiento complejo de esta manera). app.Activity;
importar android.os.Bundle;
importar android.os.Handler;
importar android.util.Log;
importar android.webkit.JsResult;
importar android.webkit.WebChromeClient;
importar android.webkit.WebSettings.
importar android.webkit. WebView;
/**
* Demuestra cómo incrustar un WebView en una actividad. También demuestra cómo
* hacer que javascript en un WebView llame a una actividad, y cómo una actividad
* puede llamar a javascript.
*
* En este ejemplo, hacer clic en Android en WebView en la actividad es un buen ejemplo.
* Este código
* utilizará el método {@link WebView#loadUrl(String)}
* para llamar a javascript.
* *
* Obviamente todo esto se puede hacer sin llamar a la actividad
* y devolver javascript, pero este código pretende mostrar cómo configure la
* ruta del código para este tipo de comunicación.
*
*/
clase pública WebViewDemo extiende la actividad {
cadena final estática privada LOG_TAG = "WebViewDemo";
Private WebView mWebView;
Private Handler mHandler = new Handler();
@ Override
public void onCreate(Bundle icicle) { p> p>
super.onCreate(carámbano);
setContentView(R.layout.main);
mWebView = (WebView) findViewById(R.id.webview) ;
Configuración WebSettings Configuración de la World Wide Web = mWebView.getSettings();
Configuración de la World Wide Web. setWebChromeClient(new MyWebChromeClient());
mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), " demo");
mWebView.loadUrl("file:///android_asset/demo. html");
}
clase final DemoJavaScriptInterface {
DemoJavaScriptInterface() {
}
/ **
* Esto no se llamará en el hilo de la interfaz de usuario. Publique un ejecutable para ser invocado en el hilo de la interfaz de usuario
* loadUrl. .
*/
public void clickOnAndroid() {
mHandler.post(new Runnable() {
public void run( ) {
mWebView.loadUrl(" javascript:wave()");
}
});
} p>
}
/**
* Proporciona un enlace para llamar a "alerta" desde javascript. Se utiliza para
* depurar su javascript.
*/
clase final MyWebChromeClient extiende WebChromeClient {
@Override
public boolean onJsAlert (vista WebView, URL de cadena, mensaje de cadena , resultado de JsResult) {
Log.d(LOG_TAG, mensaje);
resultado.confirm();
devuelve verdadero;
}
}
}
demo.html
/* Esta función es llamada por la actividad*/
función wave() {
alert("1");
document.getElementById("droid").src="android_waving.png";
alert("2");
}
guión>
<;! -- Llame a la interfaz javascript activa-->