llamada a un programa desde una página Web

Preguntas Más Frecuentes relativas a SiteKiosk

llamada a un programa desde una página Web

Notapor sitekiosk.es » Vie, 05 Ago 2022, 11:14

Este tema trata cómo llamar a un programa desde una página web para ejecutarse en SiteKiosk.

Sobre el uso de programas o aplicaciones externas en SiteKiosk
Tanto SiteKiosk Windows como SiteKiosk Android permiten definir programas o apps en sus respectivas configuraciones, y establecer los ajustes necesarios tales como la ruta del programa, si debe autoiniciarse, modo de ejecución, control de otros programas abiertos por la aplicación principal, etc. Esta función permite incorporar la llamada a los programas desde distintas plantillas de Página de Inicio, o incluso desde el propio Skin del navegador, desde la barra de tareas si está habilitada, etc.

Por ahora, y en lo relativo a este tema, basta saber que definir en programa o aplicación externa en SiteKiosk es una función ya disponible en el software. Permitiendo por tanto implementarla con los ajustes apropiados en la configuración.

Uso de código basado en el SiteKiosk Object Model
Es posible llamar a un programa mediante código, utilizando el SiteKiosk Object Model, y a través de sus objetos, métodos y propiedades, incorporarlo en la página web.
Por ejemplo, el método Run de del Object Model permite llamar a un programa ya definido con el siguiente código:
Código: Seleccionar todo
SiteKiosk.ExternalApps.Item(index).Run(bool)

El parámetro index indica el orden de la aplicación ya definida en SiteKiosk a la que queremos llamar, ej. 1 para la 1ª, 2 para la 2ª, etc.
La siguiente página de ayuda muestra un ejemplo para el Object Model Clásico con skin basado en IE.

En este tema tratamos algo que va más allá a la definición de un programa dentro de la configuración de SiteKiosk. Lo que se trata es de cómo realizar una llamada desde una página HTML que puede ser:
- local (almacenada en el equipo donde funciona SiteKiosk), o
- pública (accesible desde una determinada URL desde el navegador).
En realidad su tratamiento y código correspondiente va a ser imuy parecido en ambos casos, local o pública.

Variaciones según el tipo de navegador
SiteKiosk dispone de distintos tipos de navegador, y de skins o plantilla de navegador asociadas a ellos.
- motor de navegador Internet Explorer (de SiteKiosk Windows)
- motor de navegador Chrome (CEF Chromium Embedded Frame) de SiteKiosk Windows
- motor de navegador específico de SiteKiosk Android (Crosswalk WebView y Crosswalk Chrome desde SiteKiosk Android 2.8.x y superior)

El primer ejemplo descrito arriba es común para cualquier skin de SiteKiosk Windows, ya que utiliza el método Run basado en la llamada a la aplicación ya definida en la configuración de SiteKiosk, utilizando el parámetro Index para especificar la aplicación a la que queremos llamar.

A continuación se muestran otros dos ejemplos específicos para los motores de navegador IE y Chrome de SiteKiosk Windows.


Ejemplo para motor de navegador IE de SiteKiosk Windows

Código: Seleccionar todo
<!DOCTYPE html>
 
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>Arranque de programa con el SiteKiosk Object Model para motor de navegador IE</title>
 
    <script>
        //Inicializando el SiteKiosk Object Model para el motor de navegador IE
        window.external.InitScriptInterface();
 
        //Ejectunado la aplicación externa usando el método universal con posibilidad de usar parámetros adicionales
        function runExtApp(extapppath, extappparameter) {
            var completepath = extapppath;
 
            //Comprobar si el parámetro no está vacío y añadiendo el parámetro de la ruta a la línea de comandos
            if (extappparameter !== "")
                completepath += " " + extappparameter;
 
            SiteKiosk.ExternalApps.Run(completepath, false);
        }
    </script>
</head>
<body style="margin-left:auto;margin-right:auto;margin-top:50px;text-align:center;">
    <input type="button" value="Arrancar Bloc de Notas sin parámetros" onclick="runExtApp('c:/windows/notepad.exe','');"/><!-- también puede utilizar barras simples para especificar la ruta -->
    <input type="button" value="Arrancar Bloc de Notas con parámetro" onclick="runExtApp('c:\\windows\\notepad.exe', 'C:\\Program Files (x86)\\SiteKiosk\\Html\\extapptest.txt');"/><!--También puede usar dobles barras en la ruta-->
</body>
</html>


Incluya el código HTML y código Javascript del SiteKiosk Object Model en su página. Observe que el método Run del objeto ExternalApps se utiliza para arrancar un programa.

Código: Seleccionar todo
SiteKiosk.ExternalApps.Run(completepath, false);

Consulte más detalles sobre el método Run aquí.

Por motivos de seguridad en la configuración de SiteKiosk necesitará permitir el uso del SiteKiosk Object Model en las páginas donde se utilice. También puede utilizar una página local que puede colocar en la carpeta ..\SiteKiosk\Html\ (que ya cuenta con los permisos suficientes por defecto).

Para probar el ejemplo de arriba puede colocarlo en su servidor web o bien guardándo el archivo html localmente en la carpeta ..\SiteKiosk\html. El código de prueba también asume que existe un archivo de texto disponible en ..\SiteKiosk\html llamado extapptest.txt para el parámeto variant.


Ejemplo para motor de navegador Chrome de SiteKiosk Windows


Este segundo ejemplo tiene una pequeña varación con respecto al primero relacionada con la forma en que el SiteKiosk Object Model se arranca en el caso del motor de navegador Chrome. Consigue exactamente el mismo resultado en SiteKiosk, las partes del código HTML y JavaScript son idénticas pero no así la forma distinta de llamar al Object Model.

Código: Seleccionar todo
<!DOCTYPE html>
 
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>Arranque de programa con el SiteKiosk Object Model para motor de navegador Chrome</title>
 
    <!--Inicializando el SiteKiosk Object Model para motor de navegador Chrome -->
    <script>(new Function(_siteKiosk.getSiteKioskObjectModelCode()))();</script>
 
    <script>
        //Ejecutando la aplicación externa utilizando el método universal para permitir parámetros opcionales
        function runExtApp(extapppath, extappparameter) {
            var completepath = extapppath;
 
            //Comprobar si el parámetro no está vacío y añadiendo el parámetro al final de la ruta
            if (extappparameter !== "")
                completepath += " " + extappparameter;
 
            siteKiosk.system.windows.skLegacy.externalApps.run(completepath, false);
        }
    </script>
</head>
<body style="margin-left:auto;margin-right:auto;margin-top:50px;text-align:center;">
    <input type="button" value="Arrancar Bloc de Notas sin parámetros" onclick="runExtApp('c:/windows/notepad.exe', '');"/><!-- Puede utilizar barras simples para especificar la ruta -->
    <input type="button" value="Arrancar Bloc de Notas con parámetro" onclick="runExtApp('c:\\windows\\notepad.exe', 'C:\\Program Files (x86)\\SiteKiosk\\Html\\extapptest.txt');"/><!--O puede utilizar también dobles barras descendentes para especificar la ruta-->
</body>
</html>


La línea que arranca la aplicación externa, adaptada para el motor de navegador Chrome, es la siguiente:

Código: Seleccionar todo
siteKiosk.system.windows.skLegacy.externalApps.run(completepath, false);


La funcionalidad y parámetros aceptados del método Run son los mismos que para la versión con motor de navegador IE.

Vea también
Uso de programas y aplicaciones externas con SiteKiosk
manipulación de DOM en motor de navegador Chrome
construir un watchdog de aplicaciones externas con scripts
sitekiosk.es
Administrador del Sitio
 
Mensajes: 271
Registrado: Jue, 24 Mar 2011, 09:00

Volver a Preguntas Más Frecuentes

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron