layout.js: añade favicon dinámico (icono del logo en la pestaña)
This commit is contained in:
38
js/layout.js
38
js/layout.js
@@ -1,23 +1,29 @@
|
||||
/* ...
|
||||
AQUÍ ARRIBA ESTÁ TODO TU CÓDIGO ORIGINAL DEL LAYOUT
|
||||
(El que dibuja el sidebar, el header, el menú, etc.)
|
||||
AQUÍ ARRIBA ESTÁ TODO TU CÓDIGO ORIGINAL DEL LAYOUT
|
||||
(El que dibuja el sidebar, el header, el menú, etc.)
|
||||
... */
|
||||
|
||||
// ==========================================
|
||||
// 🎨 INYECTOR DE LOGO CORPORATIVO Y PWA (ICONOS APP)
|
||||
// ==========================================
|
||||
|
||||
// 1. INYECCIÓN SÚPER RÁPIDA (Para engañar a los iPhone 🍏)
|
||||
// Crea (o reutiliza) un <link> de icono en el <head> y le pone la URL indicada
|
||||
function setIconLink(rel, href) {
|
||||
let link = document.querySelector(`link[rel='${rel}']`);
|
||||
if (!link) {
|
||||
link = document.createElement('link');
|
||||
link.rel = rel;
|
||||
document.head.appendChild(link);
|
||||
}
|
||||
link.href = href;
|
||||
}
|
||||
|
||||
// 1. INYECCIÓN SÚPER RÁPIDA (Para engañar a los iPhone 🍏 y pintar ya la pestaña del navegador)
|
||||
// Miramos si ya tenemos el logo guardado en la memoria del móvil
|
||||
const savedLogo = localStorage.getItem("company_logo");
|
||||
if (savedLogo) {
|
||||
let appleIcon = document.querySelector("link[rel='apple-touch-icon']");
|
||||
if (!appleIcon) {
|
||||
appleIcon = document.createElement('link');
|
||||
appleIcon.rel = 'apple-touch-icon';
|
||||
document.head.appendChild(appleIcon);
|
||||
}
|
||||
appleIcon.href = savedLogo;
|
||||
setIconLink('apple-touch-icon', savedLogo);
|
||||
setIconLink('icon', savedLogo);
|
||||
}
|
||||
|
||||
// 2. DESCARGA DESDE EL SERVIDOR Y CABECERA
|
||||
@@ -54,14 +60,10 @@ setTimeout(async () => {
|
||||
headerIcon.appendChild(img);
|
||||
}
|
||||
|
||||
// Inyectamos el icono por si es la primera vez que entra
|
||||
let appleIcon = document.querySelector("link[rel='apple-touch-icon']");
|
||||
if (!appleIcon) {
|
||||
appleIcon = document.createElement('link');
|
||||
appleIcon.rel = 'apple-touch-icon';
|
||||
document.head.appendChild(appleIcon);
|
||||
}
|
||||
appleIcon.href = logoUrl;
|
||||
// Icono de la pestaña del navegador / favicon
|
||||
setIconLink('icon', logoUrl);
|
||||
// Icono al añadir la app a la pantalla de inicio (iOS)
|
||||
setIconLink('apple-touch-icon', logoUrl);
|
||||
}
|
||||
} catch (e) {
|
||||
console.error("No se pudo cargar la configuración visual de la empresa", e);
|
||||
|
||||
Reference in New Issue
Block a user