Guion de ayuda para la app

Actualizado el 27. diciembre 2022 por Jan Bunk


Hemos creado un archivo script de JavaScript con un par de funciones de ayuda útiles que simplifican la comunicación entre tu sitio web y tu aplicación.

Uso

Puedes copiar el script (o partes de él) y alojarlo tú mismo, o cargarlo directamente desde nuestro sitio web.

Ver el script de ayuda de la app

<script src="https://webtoapp.design/static/js/app-helper.js"></script>

El script está minificado, pero no ofuscado, así que puedes utilizar un formateador/embellecedor de javascript si quieres echar un vistazo a las implementaciones de las funciones.

Funciones

executeWhenAppReady

Después de la carga de cada página, la app necesita inyectar algo de javascript en la página cargada. Esto es para permitir que tu sitio web llame a funciones javascript como setNotificationTopicSubscriptionStatus. Desgraciadamente, esto no es instantáneo, por lo que si intentas llamar a una función javascript que interactúe con la app muy rápidamente después de la carga de la página, puede que aún no esté definida.

Puedes evitarlo envolviendo el código que interactúa con tu app en un comando para executeWhenAppReady.

Cuando tu sitio web se cargue con un navegador, el código dentro de executeWhenAppReady no se ejecutará. Esto significa que también puedes usar esta función para detectar si tu sitio web fue cargado por la app o un navegador. Otros métodos para eso se explican aquí.


<script>
    // setNotificationTopicSubscriptionStatus interacts with the app, so it won't immediately be available after a new page was loaded
    executeWhenAppReady(function () {
        console.log("Website was loaded by the app and the app is ready for interaction");

        // by running inside a executeWhenAppReady call, we avoid potentially calling it while still undefined
        setNotificationTopicSubscriptionStatus(true, "new-games");
    });
        
    // remember to make the function async if you use await inside it!
    // getSubscribedNotificationTopics also interacts with the app and returns a result that needs to be awaited
    executeWhenAppReady(async function () {
        var topics = (await getSubscribedNotificationTopics())["topics"];
    });
</script>

getAppPlatform

Puedes utilizar esta función para saber en qué sistema operativo el usuario actual está utilizando la aplicación.

Esta función no necesita estar envuelta dentro de executeWhenAppReady. También puede utilizarse para comprobar si el usuario actual está utilizando la aplicación (comprueba que el valor devuelto no es nulo). Sin embargo, esto no garantiza que la aplicación esté lista para la interacción con JavaScript. Si quieres llamar funciones de JavaScript que interactúen con la aplicación, debes envolverlas en executeWhenAppReady.


<script>
    // possible return values are:
    // "android"
    // "ios"
    // null -> not using app, most likely a regular browser
    var platform = getAppPlatform();
</script>
Esta función se basa en la comprobación de los agentes de usuario, por lo que solo funciona si has configurado la app para que ajuste el agente de usuario que utiliza. Puedes activar esta opción en los ajustes de navegación de tu app. Abrir ajustes de navegación

isInCustomTab, getCustomTabData, closeCustomTab

Estas funciones se utilizan para manejar las pestañas personalizadas.