> For the complete documentation index, see [llms.txt](https://doc.velneo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.velneo.com/38/velneo-vclient-web.md).

# Velneo vClient Web

En esta versión serán funcionales aquellas aplicaciones cuya interfaz haya sido generada activando con el [Generador de interfaz](/38/velneo-vdevelop/interfaz-de-velneo-vdevelop/menu-objetos.md#generar-interfaz) de Velneo vDevelop activando la opción **Generar para ejecución Web**.

También podemos usar el [inspector de ejecución web](/38/velneo-vdevelop/interfaz-de-velneo-vdevelop/menu-proyectos.md#inspector-de-ejecucion-web) para revisar si nuestra aplicación está haciendo uso de algún elemento no funcional en Velneo Web para así poder cambiarlo.

{% hint style="info" %}
En Velneo Web la carga de la información en las vistas de datos (formularios, rejillas, etc.) se hace de forma asíncrona.
{% endhint %}

## Estructura de la URL para ejecutar aplicaciones Web

La estructura que debe tener la URL para ejecutar una aplicación Web es la siguiente:

`https://web.velneo.com/?vrl=vatps://usuario:@dominio:puerto&instancia=ID_INSTANCIA[&noprogressbar=true][&appArgs=parametro]#run`&#x20;

{% hint style="warning" %}
web.velneo.com desaparecerá en futuras versiones. Para ejecutar Velneo vClient Web podemos usar la página /login del [servicio HTTPS](/38/velneo-vserver/servicio-https.md) de Velneo vServer, que también permite [lanzar una instancia directamente desde la URL](/38/velneo/velneo-web.md#acceso-directo-a-una-instancia).
{% endhint %}

Donde:

**usuario**: será el nombre del usuario del servidor cloud donde está alojada la instancia a ejecutar.

**@dominio:puerto**: serán el dominio y el puerto del servidor cloud donde está alojada la instancia a ejecutar.

**ID\_INSTANCIA**: será el identificador de la instancia a ejecutar.

**noprogressbar=true**: este parámetro es opcional. Mientras se está cargando la aplicación en el explorador Web se muestra una barra de progreso. Este parámetro lo que hace es que no se muestre dicha barra de progreso. Ejemplos:

`https://web.velneo.com/?vrl=vatps://pepe:@midominio.com:6900&instancia=VERP_APP#run` (carga de aplicación mostrando la barra de progreso).

`https://web.velneo.com/?vrl=vatps://pepe:@midominio.com:6900&instancia=VERP_APP&noprogressbar=true#run` (carga de aplicación sin mostrar la barra de progreso).

**appArgs**: este parámetro es opcional y puede repetirse. Sirve para pasar a la aplicación un parámetro de arranque de Velneo vClient, igual que se hace en un acceso directo del escritorio. Se explica en el apartado siguiente.

## Pasar parámetros de arranque a la aplicación

En el escritorio, los [parámetros de arranque de Velneo vClient](https://doc.velneo.com/velneo-vclient/funcionalidades-especificas/accesos-directos-y-vrl#envio-de-parametros-a-una-aplicacion) —`/userParam`, `/loginTitle`…— se escriben en el acceso directo. En web se pasan con **appArgs** en la URL:

`https://web.velneo.com/?vrl=vatps://pepe:@midominio.com:6900&instancia=VERP_APP&appArgs=userParam=estado=2#run`

La aplicación recibe ese valor como si se hubiera arrancado con `/userParam=estado=2`, y lo lee en el `onInit` con la función [getAppUserParam](https://doc.velneo.com/velneo-vdevelop/proyectos-objetos-y-editores/editores/asistente-de-formulas/funciones-estandar/funciones-api#getappuserparam)().

Tres cosas que conviene saber al escribir la URL:

* **La barra inicial no se escribe**: `appArgs=userParam=hola`, no `appArgs=/userParam=hola`. La pone Velneo. Si la escribes de todas formas también funciona, porque se normaliza.
* **Para pasar varios parámetros se repite `appArgs`**, uno por cada uno:

  `?appArgs=userParam=hola&appArgs=loginTitle=Mi%20empresa`

  Los valores viajan en una URL, así que los espacios y los caracteres reservados van codificados: `%20` el espacio, `%26` el `&` y `%23` el `#`. Lo demás se escribe tal cual, incluido el `=` que separa el nombre del valor.
* **Un `appArgs` vacío se ignora**, y la aplicación arranca como si no estuviera.

Cualquier parámetro que Velneo vClient acepte se puede pasar así. Ahora bien, el único que tiene efecto visible al ejecutar en web es `/userParam`: los de personalización del login pintan la ventana de conexión, que no llega a aparecer porque la aplicación arranca con la conexión ya resuelta.

{% hint style="info" %}
Lo que monta la propia página no se puede cambiar desde la URL. Un `appArgs` que repita un parámetro que la página ya pone —la conexión, el usuario, la barra de progreso— se descarta, y también `qml` y `mode` en cualquier caso. Es lo que impide que un enlace preparado por otra persona te arranque la aplicación contra otro servidor, con una sesión que no es la tuya o con una interfaz QML ajena.
{% endhint %}

{% hint style="warning" %}
**Un `%` literal dentro del valor hay que escribirlo `%2525`.** Al ejecutar en web el valor de `userParam` se decodifica dos veces: una al leer la URL y otra dentro de la aplicación. El resto de caracteres no se ven afectados.
{% endhint %}

## Notas

Podrás conectarte con cualquier servidor en el cloud de Velneo que tenga activado el [protocolo VATPS](/38/velneo-vserver/funcionalidades/protocolo-vatps.md) (a partir de Velneo 31) y activo el servicio de ejecución Web.

También es posible conectarse con servidores propietarios. [Consulta con Velneo](https://www.velneo.com/contacto) las condiciones. (a partir de Velneo 34). En este caso el servidor debe disponer de un [certificado SSL](/38/velneo-vserver/instalacion-y-configuracion/parametros-configurables-de-velneo-vserver.md#incluir-un-certificado-tls-ssl-propio) válido y activo el servicio de ejecución web.

Es posible usar la aplicación [vLanzadera](/38/aplicacion-vlanzadera-y-login-social.md) con Velneo Web para disfrutar de Login social y una página personalizable con el listado de las instancias disponibles.

Al ejecutar aplicaciones en web, cuando se usa el *localstorage*, dado no puede superar los 10 Mb, se controlará para limpiar los ficheros más antiguos y así garantizar que no se supera el límite.

En las vistas de datos incrustadas en formularios, solamente son funcionales los [modos de carga](/38/velneo-vdevelop/proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario/contenedores/vista-de-datos.md#modo-de-carga) **Al mostrar la primera vez** y **Siempre que se muestra**. El modo de carga **Al inicializar** en Web funcionará igual que el modo **Al mostrar la primera vez**.

### Informes

Cuando en Velneo Web se haga la vista previa de un informe, éste no será previsualizado directamente, se mostrará en el área del mismo un botón "Previsualizar" que, si lo pulsamos, generará un pdf y lo cargará en una nueva pestaña del explorador Web.

Cuando se ejecute un proceso que imprima un informe, se generará un pdf y se abrirá directamente una nueva pestaña del explorador Web.
