Falta la guía de Android WebView
¿Webview no es compatible con las funciones que usted o su equipo desean? No importa, lo apoyaremos juntos.
Dado que somos desarrolladores ocupados, no perderé su tiempo.
Si desea realizar alguna de las siguientes acciones:
- Envía datos desde Android a una aplicación web.
- Reciba datos de una aplicación web en Android.
Entonces este artículo es para ti, sigue leyendo, de lo contrario, también puedes leerlo, no te vendrá mal.
Supongamos que tengo algunas aplicaciones web que necesitan pasar algunos datos, por ejemplo:
- Llamar a la función de JavaScript
- Enviar cadena u objeto JSON
Ok empecemos
Tengo el siguiente diseño XML
prerrequisitos
Además, no olvide agregar permisos de INTERNET
Permítanos habilitarAumentoUse JavaScript en webview y cargue mi página personalizada alojada en mi cuenta de GitHub😃.
Ejecutemos la aplicación
Ahora que estamos listos, comencemos la inyección de código.
Supongamos que tengo una función de Javascript de la siguiente manera:
Por supuesto, puedes predecir el DOM
Todo lo que tenemos que hacer es ejecutar el siguiente código JavaScript
Afortunadamente, Android nos proporciona una forma de usar evaluateJavascript
Funciones de WebView.
Entonces, todo lo que tenemos que hacer es llamar a esta función con el código JavaScript analizado correctamente.
Intentemos
Ahora hemos terminado. Profundicemos en el siguiente paso, recibir datos de la aplicación web.
Supongamos que tengo algunas aplicaciones web que necesitan proporcionar algunos datos al lado de Android, por ejemplo:
- Enviar cadena
- Activar código nativo
- Navega a otra pantalla desde Android
Para implementar estas funciones, necesitamos realizar las siguientes operaciones
Una interfaz javascript es solo una interfaz kotlin, con una o más @JavascriptInterface
Tenga en cuenta que esta función será visible desde el lado de JavaScript.
Ahora suponga que quiero mostrar mensajes nativos de Toast desde una aplicación web
Además, para que JavaScript llame a esta función, debe estar en un objeto.
En el fragmento de código anterior, creé un objeto vacío llamado Android
Luego usa el nombre para definir la función en él. toast
, Esta función acepta un parámetro message
Lo llama a otro objeto llamado JsMediator
Este es el ciclo que une nuestro código javascript al código kotlin. JsMediator
Es la clave de mi interfaz javascript vinculante. Pobre de mí.
Puedes volver a leer el último párrafo, sé que te cuesta entenderlo.
Ahora bien, ¿cuándo llamamos a este método?
Como cualquier otra configuración de vista de Android, debemos hacerlo después de que se crea la vista.Así que vinculamos la interfaz a onCreate
En actividad o onViewCreated
En el fragmento.
Este paso es Requerido Hágale saber al mundo javascript que tengo un método llamado toast
Y la función de vinculación adjunta una interfaz a la tecla JsMediator
Quiero interceptar el paso de carga de la página e inyectar un intermediario para reenviar la llamada javascript Android.toast(message)
Para el intermediario, definimos arriba
Entonces crearemos un CustomWebViewClient
Este código se inyectará en la mediación después de que la página comience a cargarse.
El código de configuración final para la vista web será
Aún no hemos terminado.
Todos somos buenos ciudadanos de Android, y debemos limpiar los recursos después de su uso. Esta parte es muy simple, vincular la interfaz y desvincularla en el método de ciclo de vida de vista apropiado.
Además, apliqué algunos principios de código limpio en el código. Todo esto y más, te dejo esta parte.
En este momento, debo terminar este artículo. Todo el código que utilicé para este tutorial está alojado en mi cuenta de GitHub🤗🤗
- Androide La aplicación está aquí
- Esta La aplicación web está aquí
En este artículo, hablé sobre cómo usamos las vistas web para obtener beneficios y cómo interactuar con ellas.
Tenga en cuenta que Webview es un arma de doble filo, debemos prestar atención al usarlos e incluso ejecutar javascript en ellos.Eso es lo mas Lagunas Desde. Tenga cuidado y codificación feliz.
Codificación feliz