Actualizado el 21 de Marzo del 2018 (Publicado el 22 de Enero del 2018)
603 visualizaciones desde el 22 de Enero del 2018
172,2 KB
18 paginas
Creado hace 14a (08/03/2010)
http://www.wmlclub.com/tutorialwmls/index.htm
http://www.lawebdelprogramador.com
DESCRIPCIÓN
WMLS son las siglas de Wireless Markup Language Script y es un lenguaje de programación que
junto con el WML nos permite el diseño de las páginas que se visulizan en los terminales móviles.
WAP son las siglas de Wireless Application Protocol.
El WMLS, igual que el WML es case sensitive (que distingue mayúsculas de minúsculas).
El navegador, además de poseer un intérprete para WML, también tiene uno para los scripts.
Además del propio lenguaje en sí, este intérprete implementa un conjunto de librerías que permiten
a nuestros programas acceder a ciertos servicios del terminal.
El código WMLS debe incluirse en un fichero distinto al fichero asociado WML.
UTILIZACION DE WMLScript
Con el WMLS se intenta realizar tareas que únicamente con WML sería imposible de realizarlas.
Entre las utilidades del WMLScript están las siguientes:
• Chequear la validación de los datos de entrada por parte del usuario.
• Manejar mediante código funcione propias del terminal, como realizar llamadas desde el
teléfono, enviar mensajes, agregar número de teléfono a la libreta de direcciones y acceder a
la tarjeta SIM.
• Realizar alertas, mensajes de error, confirmaciones, etc.
IDENTIFICADORES
Se utilizan identificadores para nombrar las variables, las funciones y los pragmas (información
para la unidad de compilación).
Estos identificadores tienen las siguientes reglas (las mismas que para nombrar las variables en el
wml):
Sólo letras y/o números y/o el guión bajo "_"
• Case-sensitive
•
• No pueden comenzar con un número
• Y además, tiene una regla adicional: no pueden ser iguales a una palabra reservada.
Tienes aquí una lista de palabras reservadas.
COMENTARIOS
Los comentarios en el WMLS, son como en el C o en el C++ (una sóla línea, empieza por // y más
de una línea empieza por /* y termina por */):
//comentario
/*
Comentarios de más
de una línea
*/
CARACTERES ESPECIALES
Si quieres escribir comillas (") barra (/) y otros caracteres más, tendrás que hacerlo de una forma
especial, porque en el wmls todos esos caracteres están reservados.
Aquí tienes una lista completa de caracteres especiales.
Los wmlscripts se pueden escribir en cualquier editor de texto normal y corriente. No pueden ser
ejecutados sin que sean llamados desde una carta wml.
PRIMEROS PASOS Vamos a hacer un sencillo wmls que convertirá las pesetas a dólares
(suponiendo un valor para el dólar de 166).
Si no quieres teclear, puedes bajártelo desde demos.
Primero necesitamos hacer el wml que recogerá la cifra que queremos pasar a dólares.
Este podría ser:
<?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml"> <wml> <card id="monedas"
title="WMLCLUB, demo" newcontext="true"> <p>Conversor de pts. a $$</p> <p><input
type="text" name="cantidad" title="Cantidad: " format="*N"/></p> <p><do type="accept">
<go href="pts-dolares.wmls#calcular('$(cantidad)')"/> </do> </p> <p>Resultado: $
(resultado)</p> </card> </wml>
En esta carta hemos creado una variable que se llama cantidad y lleva la cifra que queremos
convertir a dólares.
Además hemos incluído una variable, que no tiene nada, llamada resultado. En esta variable
meteremos el resultado en el wmls siguiente:
\** Comentario... Wmlclub demo * Comentario... Empieza la funcion del cálculo *\ extern
function calcular(cantidad) {
var dolar = (cantidad/166); var dolarString = String.toString(dolar); dolarString =
String.format("%.2f", dolarString); WMLBrowser.setVar("resultado", dolarString);
WMLBrowser.refresh();
}
Las tres primeras líneas son de comentarios, no hace falta ponerlas. Explico línea por línea.
• extern function calcular(cantidad) { Declaramos una función que llamamos
arbitrariamente calcular. La función es "extern" porque puede ser llamada (y de hecho
lo es) desde fuera de su unidad de compilación, usease, fuera del microprogramita
wmls. En esta función ya le decimos que tome la variable cantidad (desde donde haya
sido llamada). La función contiene las siguientes líneas que van entre corchetes { } :
• var dolar = (cantidad/166); Se declara una variable llamada dolar y se le asigna un
valor, en este caso, lo que haya introducido el usuario dividido entre 166 (el supuesto
valor actual de la moneda americana).
• var dolarString = String.toString(dolar); Como el resultado puede ser tremendo en
décimas, tenemos que hacer algo. Primero lo convertimos a una cadena de texto, con
String.toString. El resultado irá dentro de la variable dolarString.
• dolarString = String.format("%.2f", dolarString); Y ahora la variable dolarString
(que ya ha sido declarada, por lo que no necesita que se la vuelva a declarar con "var"),
se le da un formato adecuado para salir a escena. %, seguido de un número indica el
número de caracteres que tiene que imprimir en total. Si sólo ponemos %, imprimirá
todos los caracteres. El punto, indica el grado de precisión. En este caso hemos puesto
2f, que quiere decir: "dos dígitos a la derecha del punto decimal". Si hubiera puesto 3f,
serían tres decimales y así.
• WMLBrowser.setVar("resultado", dolarString); Aquí se crea una variable de
nombre resultado y cuyo valor es el contenido de dolarString y además se envía a la
carta desde la cual fue llamada esta función.
• WMLBrowser.refresh(); Refresca el browser para que en la pantalla aparezcan los
cambios (ahora la variable "resultado" tiene un valo
VARIABLES EN WMLSCRIPT
Las variables tienen que declararse (crearse) antes de poder utilizarlas en una expresión.
Esta es la forma de declarar una variable: var NombreVariable; var, seguido del nombre de
la variable, que es "case sensitive", como todo el wmlscript y el wml.
El nombre de la variable puede llevar caracteres alfabéticos, números y el guión bajo ("_"),
pero nunca puede empezar con un número.
En la declaración de una variable puede asignársele un valor inicial. Hay dos formas de hacerlo,
con igual resultado: var a; a = 1;
O esta otra forma: var a = 1;
También se pueden declarar varias variables a la vez: var a, b, c;
El valor de las variables en el WMLScript sólo duran lo que dura la función en la que son
declaradas. Por eso sólo se puede acceder a su valor dentro de la función donde han sido
declaradas.
TIPO DE DATOS
Las variables pueden contener cualquier tipo de datos:
• Boolean (true o false) Ejemplo: var respuesta = true;
•
Integer (número entero positivo o negativo, sólo desde -2147483648 hasta el
2147483647) Ejemplo: var num = 7890; El integer máximo y mínimo pueden
conseguirse durante la ejecución del script con las funciones de la librería Lang, así:
Lang.maxInt () Lang.minInt ()
• Float (número decimal, el mínimo es: +-1.17549435E-38 y el máximo es: +-
3.402823476E+38) Ejemplo: var num = 6.78; El float máximo y mínimo se consiguen
así: Float.maxFloat () Float.minFloat () Si el resultado de la operación da un
número mayor del máximo devuelve invalid a la variable y si es menor que el mínimo el
resultado es 0.0
• String (caracteres alfabéticos, se puede utilizar comillas dobles o simples) Ejemplo: var
nombre = "Juan";
•
Invalid (para distinguirlo de los otros tipos de datos o para saber por ejemplo cuándo el
resultado de una operación se sale de los máximos o los mínimos, etc.) Ejemplo: var
ex = invalid;
VARIABLES GLOBALES
Hay una forma de crear variables globales, esto es, variables que se almacenan en el contexto
del navegador y que pueden ser accedidas tanto por las cartas WML, como por las funciones
del WMLScript.
Estas variables hay que crearlas con la función setVar de la librería WMLBrowser, así:
WMLBrowser.setVar ("nombreVariable", valor);
La variable siempre tiene que tener un valor inicial:
WMLBrowser.setVar ("nombre", 0);
CARACTERES DE ESCAPE DEL URL
%3b
{
%2f }
%3f
|
%3a \
%7b
%7d
%7c
55c
%
%40 ^
%5e
;
/
?
:
@
&
=
+
$
,
%26
%3d
[
]
%2b `
%24 <
%2c >
%5b
%5d
%27
%3c
%3e
%23
space %20 #
LIBRERÍAS
Lo que vimos en el ejemplo anterior:
String.toString String.format WMLBrowser.setVar WMLBrowser.refresh son funciones
de las librerías de String y de WMLBrowser, respectivamente.
El WmlScript tiene seis librerías con sus funciones, que nos permitirán hacer muchas cosas:
• Lang (con sus funciones de aritmética y otras cosas)
• Float (con funciones para manejar números con decimales -no todos los browsers
soportan esta librería, porque hay algunos dispositivos que sólo admiten números
enteros-)
• String (con funciones para manejar cadenas de texto)
• URL (con funciones para manejar URLs)
• WMLBrowser (con funciones para leer y escribir variables WML y ejecutar algunas
tareas WML)
• Dialogs (con funciones para diálogos -mensajes en la pantalla que esperan una
respuesta del usuario)
Así que si ponemos String.toString estamos llamando a la función toString de la librería
String
Vamos a ver una por una todas las librerías, con ejemplos claros.
LIBRERÍAS: LANG Funciones aritméticas:
• abs (número) Ej: var x = Lang.abs(-5) // x = 5 el valor absoluto de un
número. El tipo de dato seguirá siendo el mismo que el número.
• max (número1, número2) Ej: var x = Lang.max(5, 3) // x = 5
Devuelve el número que sea mayor de número1 y número2. El tipo de dato
devuelto será el mismo que el número seleccionado. Si los dos números son
iguales, se seleccionará el número1.
• min (número1, número2). Ej: var x = Lang.min(5, 3) // x = 3
Devuelve el número que sea menor de número1 y número2. El tipo de dato
devuelto será el mismo que el número seleccionado. Si los números son
iguales devolverá el número1.
Funciones de conversión
Permiten convertir cadenas de texto a números enteros y números con decimales y también
comprobar que la conversión ha sido un éxito.
•
•
isFloat (
Comentarios de: WMLScript (0)
No hay comentarios