4D v16.3Gestión programada de áreas web |
||
|
4D v16.3
Gestión programada de áreas web
Gestión programada de áreas web
Los comandos de este tema están dedicados a la gestión programada de objetos de formulario de tipo área web. Las áreas web pueden mostrar todo tipo de contenido web (*) al interior mismo de su entorno 4D: páginas HTML con contenidos estáticos o dinámicos, archivos, imágenes, Javascript. La siguiente imagen muestra un área web incluida en un formulario y muestra una página HTML: (*) Sin embargo, no se recomienda el uso de plugins Web y applets Java (ver Notas sobre uso de áreas web). Además de los comandos del tema web Area, varias acciones y eventos de formularios dedicados permiten al desarrollador controlar el funcionamiento de las áreas web. Pueden utilizarse variables específicas para intercambiar información entre el área y el entorno 4D. Estas herramientas pueden utilizarse para desarrollar un navegador web básico en sus formularios. La creación de un área web se efectúa con la ayuda de una variante del botón Area de plug-in/Sub formulario de la barra de objetos del editor de formularios de 4D (para mayor información, consulte la sección Áreas web en el manual de Diseño). Nota: cuando se muestra un área web que utiliza el motor el motor de renderización integrado en nuevo proceso creado con el comando New process, es necesario utilizar el valor por defecto (0) para el parámetro pila. Como los otros objetos dinámicos del formulario, un área web dispone de un nombre de objeto y de un nombre de variable, que pueden ser utilizados para manejarla por programación. La variable estándar asociada al objeto área web es de tipo Texto. Específicamente, puede utilizar los comandos OBJECT SET VISIBLE y OBJECT MOVE con las áreas web. Nota: la variable Texto asociada al área web no contiene una referencia por lo tanto no puede pasarse como parámetro a un método. Por ejemplo, para un área web llamada MiArea, no puede utilizarse el siguiente código: Mymethod(MyArea) Código para Mymethod: WA REFRESH CURRENT URL($1) //No funciona Para este tipo de programación, necesitará utilizar punteros: Mymethod(->MyArea) Código para Mymethod: WA REFRESH CURRENT URL($1->) //Funciona Además de las variables de objetos estándar (ver párrafo anterior), dos variables específicas son asociadas automáticamente a cada área web:
Puede nombrar estas variables como prefiera. Estas variables son accesibles en la Lista de propiedades:
La variable "URL" es de tipo cadena. Contiene la URL cargada o que está siendo cargada por el área web asociada. La asociación entre la variable y el área web funciona en ambas direcciones:
Esquemáticamente, esta variable funciona como el área de dirección de un navegador web. Puede representarla por un área de texto situada sobre el área Web. Variable URL y comando WA OPEN URL - para acceder a los documentos, esta variable sólo acepta los URLs conformes a los RFC ("file://c:/Mi%20Doc") y no las rutas de acceso sistema ("c:\MiDoc"). El comando WA OPEN URL acepta las dos notaciones. "Progreso" es una variable de tipo Entero largo. Contiene un valor entre 0 y 100, representa el porcentaje de carga completo de la página mostrada en el área web. Esta variable es actualizada automáticamente por 4D. No es posible modificarla manualmente. Puede llamar a los métodos 4D desde el código JavaScript ejecutado en un área web y obtener valores a cambio. Para poder llamar a los métodos 4D desde un área web, debe seleccionar la opción Acceso métodos 4D para el área en la Lista de propiedades:
$4d.HelloWorld(); Atención: JavaScript distingue entre mayúsculas y minúsculas, por lo que es importante tener en cuenta que el objeto se llama $4d (con "d" minúscula). $4d.4DMethodName(param1,paramN,function(result,error){})
Dado un método proyecto 4D llamado today que no recibe parámetros y devuelve la fecha actual como una cadena. C_TEXT($0) En el área web, el método 4D puede ser llamado con la siguiente sintaxis: $4d.today() El método 4D no recibe ningún parámetro pero devuelve el valor de $0 a la función de retrollamada llamada por 4D después de la ejecución del método. <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript"> $4d.today(function(dollarZero) { var curDate = dollarZero; document.getElementById("mydiv").innerHTML=curDate; }); </script> </head> <body>Today is: <div id="mydiv"></div> </body> </html> El método proyecto 4D calcSum recibe los parámetros ($1...$n) y devuelve su suma de $0: Código 4D del método calcSum: C_REAL(${1}) // recibes en los parámetros de tipo REAL El código JavaScript que ejecutará en el área web es: $4d.calcSum(33, 45, 75, 102.5, 7, function(dollarZero) { var result = dollarZero // resultado es 262.5 }); Los eventos formulario específicos están destinados a la gestión programada de áreas web, particularmente a la activación de enlaces:
Además, las áreas web soportan los siguientes eventos formulario genéricos:
Para mayor información sobre estos eventos, consulte la descripción del comando Form event. Puede ver y utilizar un inspector web dentro de las áreas web de sus formularios. El inspector web es un depurador, suministrado por el motor de renderización Web integrado, que analiza el código y el flujo de información de las páginas web. Las siguientes condiciones se deben cumplir para poder ver el inspector web en un área web:
WA SET PREFERENCE(*;"WA";WA enable Web inspector;True) Para más información, consulte la descripción del comando WA SET PREFERENCE. Cuando haya hecho los ajustes como se describió arriba, tendrá nuevas opciones tales como Inspeccionar Elemento en el menú contextual del área: Al seleccionar esta opción, se muestra la ventana del inspector Web. El inspector web está incluido en el motor de renderización Web integrado. Para una descripción detallada de las funcionalidades de este depurador, consulte la documentación ofrecida por el motor de renderización web. Durante la ejecución del formulario, el usuario dispone de las funciones de interfaz estándar de los navegadores en el área web, lo cual permite la interacción con las otras áreas del formulario:
Por razones relacionadas con los mecanismos de redibujo de ventana, la inserción de un área Web en un subformulario está sujeta a las siguientes restricciones:
Bajo Windows, no es recomendable acceder vía un área web al servidor web de la aplicación 4D que contiene el área porque esta configuración puede provocar un conflicto que paralice la aplicación. Por supuesto, un 4D remoto puede acceder al servidor web del 4D Server, pero no a su propio servidor web. El uso de plugins web y applets Java no se recomienda en áreas web, ya que pueden conducir a inestabilidad en el funcionamiento de 4D, en particular a nivel de gestión de eventos. Los URLs administrados por programación en áreas web bajo Mac OS deben comenzar por el protocolo. Por ejemplo, debe pasar la cadena "http://www.misitio.com" y no únicamente "www.misitio.com".
|
PROPIEDADES
Producto: 4D
HISTORIA
ARTICLE USAGE
Manual de lenguaje 4D ( 4D v16) |