Nodo APP / app.xml


Nodo en el que se definen características especiales y generales de la aplicación, para todas y cada una de las colecciones.

Está formado por:

  1. Atributos que dan esas características.
  2. Nodos.


Un formato de ejemplo sería el siguiente:

<?xml version="1.0" encoding="iso-8859-15" standalone="yes"?>
<xml>
    <app 
        prefix="gen" 
        version="0.0.28.390" 
        debug="false" 
        sql-debug="false" 
 
        scale-fontsize="true"
 
        keyboard-bar-visible="true" 
        keyboard-bar-bgcolor="C1B82F" 
 
        autologon="false" 
        load-wait="true" 
        screen-orientation="portrait" 
        resolution-width="720" 
        resolution-height="1280" 
        companycolor="#C1B82F" 
        forecolor="#FFFFFF" 
        entry-point="MenuPrincipal">
 
	<!-- El atributo strict-mode="true" indica al framework que revise el fichero .CSS en busca de errores -->
        <style url="default.css" strict-mode="true" />
        <style url="default-ios.css" conditions="ios" strict-mode="true" />
    	<style url="default_hor.css" conditions="phone:horizontal" strict-mode="true" />
    	<style url="default_hor.css" conditions="tablet:horizontal" strict-mode="true "/>
 
        <!-- También se pueden incluir aquí los ficheros vbs y js en lugar de hacerlo en la colección de empresas -->
        <include file="funciones.js" language="javascript" />
 
        <connection name="mtto" connstring="bd/gestion.db" />
 
        <!-- Conexión con la BD de réplica de ficheros (Solo Android)-->
        <connection name="Info_ReplicaFiles" connstring="Provider=Xone Remote Provider;Data Source=local;ProgID=com.xone.db.impl.replicafiles.RplFilesConnection;DBMS Name=Ibd;User 
         Name=sa;Password=;appname=ClientMobility;Timeout=60" prefix="" />
 
        <!-- Colección de Login Personalizada, que puede ser un fichero XML externo al mappings --> 
        <!-- Este nodo viene a sustituir al atributo login-coll="true" que se especificaba en el nodo coll de la colección de login,
             de forma que así tenemos mejor localizada la colección de login, además de poder especificar condiciones y llamar a un login u otro... -->
        <login-coll>
		<item name="LogonColl" conditions=""></item>
	</login-coll>
 
	<!-- Este nodo también viene a sustituir al atributo entry-point="ColeccionEntrada" que se definía en el nodo app. 
             También aquí podemos especificar condiciones para que entre en una colección u otra -->
	<entry-point>
		<item name="portadaQ" />
		<item name="portadaQTH" conditions="tablet:horizontal" />
		<item name="portadaQ" conditions="phone;hiphone" />
	</entry-point>
 
    </app>
</xml>


ATRIBUTOS DEL NODO:

ATRIBUTO DESCRIPCIÓN
prefix Nodo para la definición de la macro ##PREF##, que es utilizada en los SQL de las colecciones del mappings.
version Definición de la versión del mappings. El xonestudio, al guardar el mappings, aumenta automáticamente este número, de tal forma que podemos tener control de versiones.
companycolor Para la definición de un color general para toda la aplicación. Son colores aplicados a los menús, colores de pestañas o selecciones, siempre y cuando en dichos lugares no pongamos colores para esas zonas. Se le pasan colores
forecolor El color de los textos de forma general. Se le indican colores.
compatibility-mode Modo en compatibilidad con versiones anteriores. Es bueno utilizarlo si tenemos una aplicación realizada con versiones anteriores de otros Frameworks, para que la visión no tenga un cambio radical. Valores “true” o “false”. Por defecto “false”.
hardware-keyboard Mostrar automáticamente o no el teclado del dispositivo, para ello se pone a “true”, con lo que indicamos que el dispositivo tiene teclado de hardware y entonces no muestra el teclado cada vez que nos ponemos en un campo. Solo válido para el framework de WM. Por defecto es “false”.
debug Se le indica al framework que el mismo se esta ejecutando en modo debug, con lo que nos mostrará mas información. Esto es para el dispositivo “Android”, cuando se está trabajando en modo de depuración o con el :xonestudio. Valores “true” o “false”, por defecto “false”.
sql-debug Se le indica al framework que loguee todas las SQL que se vayan ejecutando en el framework. Valores “true” o “false”, por defecto “false”.
entry-point Se le indica al framework, que la entrada a la aplicación ya no es el appwizard, sino que es el nombre de la colección que se le pasa en este atributo. Es útil para hacer un menú customizado.
screen-orientation Se fuerza al framework para que SIEMPRE muestre la aplicación en modo Apaisado (landscape) o bien en modo “vertical” (portrait).Los valores pueden ser landscape o portrait. Ej: screen-orientation=“portrait”.
scale-fontsize Poner a true para que el tamaño de la letra también se escale según cambia el tamaño de pantalla. Si en alguna colección no queremos que nos aplique este valor por el motivo que sea, podríamos poner el atributo con valor false a nivel de la COLL que sea.
resolution-height Al igual que el anterior es para “relativizar” los tamaños especificados en puntos, indicando la resolución “original” para la cual la aplicación fue concebida y se veía “bien”, de forma que el framework recalcule los tamaños cuando esté en otro dispositivo con otra resolución distinta a la “original”.
hypermedia Valores true o false(el valor false es el predeterminado). Si es true activa las optimizaciones para aplicaciones hipermedia. ESTE FRAMEWORK SE COMERCIALIZA POR SEPARADO
fullscreen Valores true o false(el valor false es el predeterminado). Si es true la aplicación se mostrará a pantalla completa ocultando las barras de estado del dispositivo móvil. Ejemplo: en el iPad la barra con la hora y estado de batería.
autologon Valores true o false(el valor false es el predeterminado). Este atributo controla que se haga login automático para aplicaciones que no lo necesiten. Para que funcione es necesario tener un usuario admin con contraseña vacía en la base de datos.
use-analytics Valores true o false (el valor false es el predeterminado).
analytics-type Valores google o nielsen (http://www.google.com/intl/es/analytics/ o http://es.nielsen.com/products/ac.shtml).
analytics-nielsen-domain Valor string url con el nombre del dominio siguiendo las especificaciones de Nielsen para aplicaciones nativas.
analytics-uid Valor string. Indica el UID para google analytics o el client id para Nielsen.
default-language Valor string. Indica el lenguaje por defecto para los scripts si no está especificado en la etiqueta donde se define el script. (vbscript o javascript).



ATRIBUTOS EXCLUSIVOS DE iOS

ATRIBUTODESCRIPCIÓN
google-api-enabletrue o false. Por defecto, iOS utiliza los servicios de Apple para localizar las coordenadas que vayamos a mostar en un contents de tipo mapview. Si queremos utilizar las API de google para una mejor localización y que la localización sea exactamente igual que en Android, tendremos que poner este atributo a true.
google-api-keyAquí pondremos el valor de la API key que google nos proporciona para poder utilizar sus servicios, si el atributo anterior está a true, aquí tendremos que especificar un valor.



SUBNODOS DEL NODO APP Y SUS ATRIBUTOS:


Nodo que indica cuál es la colección personalizada de login en la aplicación.

ATRIBUTO DESCRIPCIÓN
name El nombre de la colección de login. Case Sensitive.
conditions Mismas condiciones que el resto de nodos. (Orientación, plataforma/SO, Teléfono/tablet)


<!-- Colección de Login Personalizada, que puede ser un fichero XML externo al mappings --> 
<!-- Este nodo viene a sustituir al atributo login-coll="true" que se especificaba en el nodo coll de la colección de login,
     de forma que así tenemos mejor localizada la colección de login, además de poder especificar condiciones y llamar a un login u otro... -->
 
<login-coll>
	<item name="LogonColl" conditions=""></item>
</login-coll>

Nodo entry-point


Nodo que indica cuál es la colección de entrada a la aplicación una vez se ha hecho login.

ATRIBUTO DESCRIPCION
nameEl nombre de la colección de entrada (Menu). Case Sensitive.
conditionsMismas condiciones que el resto de nodos. (Orientación, plataforma/SO, Teléfono/tablet)


<!-- Este nodo también viene a sustituir al atributo entry-point="ColeccionEntrada" que se definía en el nodo app. 
     También aquí podemos especificar condiciones para que entre en una colección u otra -->
<entry-point>
	<item name="portadaQ" />
	<item name="portadaQTH" conditions="tablet:horizontal" />
	<item name="portadaQ" conditions="phone" />
</entry-point>


Nodo para la definición del CSS que se va a utilizar en la aplicación.

ATRIBUTO DESCRIPCIÓN
url Nos indica el nombre del archivo CSS que se va a utilizar en la aplicación.
strict-mode=“true” Atributo para que el framework parsee el fichero CSS y nos detecte si tiene errores que puedan provocar que otros estilos definimos a continuación de la línea errónea no nos funcionen correctamente.
conditions El atributo conditions especifica la condición que ha de cumplirse para que se cojan las reglas definidas dentro del fichero css especificado en el atributo url.


Más información aquí


Nodo para el control de batería, mostrando mensajes según las indicaciones de sus atributos.
NOTA: Solo válido para el framework Windows Mobile.

ATRIBUTODESCRIPCIÓN
Limit3Primer mensaje de aviso, indicando que le queda el porcentaje de batería que ponemos como valor en el atributo.
Limit2Segundo mensaje de aviso, con el porcentaje indicado.
Limit1Tercer y último mensaje de aviso, indicando que en unos 5 segundos la aplicación se cerrará de forma controlada. Puede que tenga alguna pérdida de datos, que serán aquellos que están en pantalla sin estar guardados. Cualquier otro no se perderá.