Closed isra00 closed 2 years ago
¿Incluir PWACompat? Son 6KB. Login pesa 2,5KB; son 4,75KB; book 11KB, AllTranspositions 15KB. Si se pone, no inline, pues se repetiría en cada página.
Nuevo intento:
/it/all-songs-report
Página normal online
/it/all-songs-report/offline/{email}
Pre-cache. Solo funciona cuando está loggedin, pero no es un problema
Incrusta el CSS
Incluye links al resto de Neo-Transposer, que, como está fuera del ámbito
El SW puede solicitar una actualización logged-out, por tanto hace falta el email (para evitar ataques de fuerza bruta)
/it/all-songs-report/service-worker-{email}.js
Incluye el range y la versión (actualizar automáticamente cuando se añadan/cambien cantos) en el cache name
Después de haber cerrado sesión online, se actualiza logged out, pues el browser solicita
el nuevo service-worker logged out, y este incluye el nuevo range
/it/all-songs-report/manifest.json
start_url = /all-songs-report/it/offline
scope = /all-songs-report/it/
/all-songs-report/icon-512.png (symlink o redirect)
...
Demasiado complicado. Wontfix
/{lang}/offline
y/{lang}/AllSongsReport?offline=1&lowest=...&highest=
/es/offline
ofrece un link al AllSongsReport descargado mientras detecta conexión. Si hay conexión, redirige directamente a/book
, pues nos interesa maximizar el uso directo de la web (mayor usabilidad, quick search, feedback, etc). Si no detecta conexión, "No tienes conexión, pero puedes ver las transposiciones para tu voz"./{lang}/AllSongsReport?offline=1&lowest=...&highest=
) es una página que contiene el rango en la URL. Así, cuando se actualiza su rango se actualiza su service worker y por tanto la PWA se actualiza con su Report. El SW almacena el precache con un id que contiene el rango (p.ej.neotransposer-A1-B2
), para añadir un nuevo precache cuando el rango cambia y borrar los antiguos. El nombre del precache también contiene un número de versión, para que si se actualiza la aplicación (nuevos cantos, cambios en el algoritmo, etc.) se actualice también el SW. Este número de versión tendrá que ser actualizado a mano en el código cuando se produzcan cambios relevantes.Descargar
se lanzará la instalación de la PWA si es que el navegador implementaonbeforeinstallprompt
. Si no, mostrar popup o banner con instrucciones para instalar PWA./es/allSongsReport?offline=1&lowest=...&highest=
y contiene todos los assets, como la actual versión para impresión. Además la página mostrará el voice range y la fecha cuando fue generado, y debe registrar también el SW, para disparar actualizaciones. La página no se debe cachear en el browser, para que cuando el sw la actualice no coja la antigua. La página offline debe tener un link fácilmente accesible a neo-transposer/book (que, seguramente, redirigirá a login), que diga "necesita conexión" o algo así (detectar si hay conexión o no).