fix(mobile): inyectar mobile-ui.js inline en cada página

El WebView de Android cacheaba el archivo /js/mobile-ui.js incluso
después de actualizar la APK, evitando que las flechas de paginación
aparecieran. Ahora el script se lee del filesystem y se inyecta como
<script> inline antes de </body>, eliminando cualquier caché.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
SITO 2026-05-09 00:37:35 +02:00
parent 10497a6307
commit 64d3aeb0b1

View file

@ -789,7 +789,6 @@ const template = (titlePrefix, ...elements) => {
link({ rel: "stylesheet", href: "/assets/styles/style.css" }),
themeLink,
link({ rel: "stylesheet", href: "/assets/styles/mobile.css", media: "(max-width: 768px)" }),
script({ src: "/js/mobile-ui.js", defer: true }),
link({ rel: "icon", href: "/assets/images/favicon.svg" }),
meta({ charset: "utf-8" }),
meta({ name: "description", content: i18n.oasisDescription }),
@ -1056,8 +1055,25 @@ const template = (titlePrefix, ...elements) => {
renderFooter()
)
);
return doctypeString + nodes.outerHTML;
return doctypeString + nodes.outerHTML.replace(
'</body>',
'<script>' + getMobileUiInline() + '</script></body>'
);
};
let _mobileUiCached = null;
function getMobileUiInline() {
if (_mobileUiCached !== null) return _mobileUiCached;
try {
const fs = require('fs');
const path = require('path');
_mobileUiCached = fs.readFileSync(
path.join(__dirname, '..', 'client', 'public', 'js', 'mobile-ui.js'),
'utf8'
);
} catch (e) { _mobileUiCached = ''; }
return _mobileUiCached;
}
// menu END
exports.template = template;