Red de conocimiento informático - Problemas con los teléfonos móviles - webview tiene múltiples formas de interactuar con html5

webview tiene múltiples formas de interactuar con html5

Para los principiantes de Android, deben conocer el componente webView. Lo entendía un poco antes, pero en un proyecto en el que tuve que usar webview, descubrí el poder de webview. Hoy compartiré con ustedes algunas experiencias sobre el uso de webview.

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>

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

}

});

}

}

/**

* 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

! 80px;

margen:0px auto;

relleno:10px;

text-align:center;

borde:2px sólido #202020;"

>

¡Haz clic en mí!

main.xml

android:orientation="vertical"

android:layout_width=" fill_parent"

android:layout_height="fill_parent"

>

android:layout_width="fill_parent"

android: layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/intro"

android:padding="4dip"

android:textSize=" 16sp"

/>

<

p> android: id="@+id/webview"

android:layout_width="fill_parent"

android:layout_ height="0dip"

android :layout_weight="1"

/>

4.

①Cómo Android llama a js.

Llamando al formulario:

mWebView.loadUrl("javascript:wave()");

Entre ellos, Wave () es un método en js. Por supuesto, puedes cambiar este método por otro, es decir, Android llama a otros métodos.

②Cómo llamar a Android usando js.

Formulario de llamada:

El código en "demo" se especifica en el nombre de llamada de android , es decir

mWebView.addJavascriptInterface(new DemoJavaScriptInterface(), "demo");

clickOnAndroid() en el código es el objeto correspondiente a "demo": new DemoJavaScriptInterface () un método.

3) Interacción bidireccional.

Por supuesto, esto es sólo una combinación de los dos primeros.

5. Explicar y demostrar.

Ahora debes haber entendido la interacción entre Android y js. Ahora es el momento de analizar algunas demostraciones y deberías tener una mejor idea basada en lo mencionado anteriormente. El proceso de interacción específico es el siguiente:

① Haga clic en la imagen y luego llame directamente al método clickOnAndroid () en Android en el lado js

② El método clickOnAndroid (); usando hilos) llama al método js.

③ Controle directamente html llamando a ②js.

Resumen personal: al usar webView, en algunos casos, el diseño de la interfaz de usuario se puede convertir en el código html correspondiente para escribir, y existe una herramienta poderosa como DW para el estilo de diseño html, y hay muchas Código fuente, muchos fragmentos de código. Se ahorrará mucho tiempo en lo que respecta a la interfaz de usuario y las imágenes, no tiene sentido reinventar la rueda.