[Corrigido] Como redirecionar o site para uma versão mobile ou desktop usando javascript
Aprenda como redirecionar um site para versão mobile ou desktop usando Javascript
Na era digital é muito importante ter um site responsivo que se adapte ao dispositivo do usuário, por isto criei este código para você usar em qualquer site que usa Javascript.
No meu caso, o site com versão mobile usa um parâmetro na url "?m=1" quando é para celular e "?m=0" quando for desktop, no seu caso basta adaptar de acordo com o parâmetro usado em seu site para versão mobile/desktop.
// Verifica se o usuário está em um dispositivo móvel
var isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
// Obtém a URL atual da página
var currentUrl = window.location.href;
// Define o parâmetro de redirecionamento
var redirectParam = isMobile ? '1' : '0';
// Verifica se o parâmetro ?m já está presente na URL
var regex = /[?&]m=[01]/i;
var newUrl;
if (regex.test(currentUrl)) {
// Se o parâmetro ?m já estiver presente na URL, substitui seu valor
newUrl = currentUrl.replace(/([?&])m=[01]/i, '$1m=' + redirectParam);
} else {
// Caso contrário, mantém a URL sem adicionar o parâmetro ?m
newUrl = currentUrl;
if (currentUrl.indexOf('?') !== -1) {
newUrl += '&m=' + redirectParam;
} else {
newUrl += '?m=' + redirectParam;
}
}
// Redireciona para a nova URL, se for diferente da URL atual
if (newUrl !== currentUrl) {
window.location.href = newUrl;
}
Por exemplo se seu site tiver o parâmetro "m.site.com" quando for mobile e "site.com" quando for desktop, basta trocar o código por este abaixo,
// Verifica se o usuário está em um dispositivo móvel
var isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);
// Obtém a URL atual da página
var currentUrl = window.location.href;
// Define a base URL para desktop e mobile
var desktopBaseUrl = "https://site.com";
var mobileBaseUrl = "https://m.site.com";
// Define a URL de redirecionamento com base no tipo de dispositivo
var redirectUrl;
if (isMobile && currentUrl.startsWith(desktopBaseUrl)) {
// Se for mobile e a URL atual começa com a base para desktop, redireciona para mobile
redirectUrl = currentUrl.replace(desktopBaseUrl, mobileBaseUrl);
} else if (!isMobile && currentUrl.startsWith(mobileBaseUrl)) {
// Se for desktop e a URL atual começa com a base para mobile, redireciona para desktop
redirectUrl = currentUrl.replace(mobileBaseUrl, desktopBaseUrl);
} else {
// Não é necessário redirecionamento
redirectUrl = null;
}
// Redireciona, se necessário
if (redirectUrl) {
window.location.href = redirectUrl;
}