Recetas

Xamarin.Forms – Ejecutando código JavaScript desde C#


Si has trabajado anteriormente con Xamarin, tal vez hayas utilizado el control WebView. Dicho control nos sirve para mostrar una página web dentro de nuestra aplicación, tal como el siguiente ejemplo:

Tal vez, una cosa que desconozcas es que se puede invocar una función JavaScript, ¡Desde tu código C#!

Para esto, lo que haremos será crear un archivo tipo .html dentro de nuestro proyecto portable, en una solución tipo Xamarin.Forms:

Dicho archivo, debe tener en sus propiedades, asignada la opción “Embedded Resource” en Build Action:

Dicho archivo, contiene la siguiente estructura a modo de ejemplo:

Procederemos también, a crear la definición de nuestro archivo .xaml, el cual contendrá una caja de texto, un botón para invocar el método Javascript, y un WebView donde desplegaremos la información deseada:

Ahora viene la parte interesante, en primer lugar, debemos de cargar la página HTML que deseemos, en nuestro caso, la página se llama test.html, por lo que crearemos una función dentro de nuestro archivo MainPage.xaml.cs, que lleve a cabo dicha carga, de la siguiente manera:

El código anterior, lo que hace es obtener el archivo HTML, y regresarlo como un órigen html para nuestro control WebView, debemos asignar dicha lectura en el constructor de nuestra página:

Por último, codificaremos el manejador de eventos del botón definido en nuestro código XAML, llamado “btnCallJS, de la siguiente forma:

La forma de invocar las funciones dentro del archivo html, es a través de la función “Eval”, a la cual se le deben de pasar los parámetros obtenidos a través de la interfaz de usuario.

Con esto, tendrás una aplicación funcional que es capaz de invocar código Javascript:

Saludos.

Entrada basada en las recetas del sitio oficial de Xamarin.Forms.

Xamarin Forms
Xamarin Forms: Consumiendo un servicio web basado en JSON Parte 3: Creando Creando la Vista
Xamarin Forms
Xamarin Forms: El método Device.OnPlatform
Xamarin
Xamarin.Forms – Cambiando una imagen a partir de la orientación del dispositivo
There are currently no comments.