"Afficher l'emplacement du site complet" option de site mobile

Je travaille donc sur la version mobile d'un site que je fais, et jusqu'à présent, je tire le contenu des sites mobiles de son homologue principal, le site principal.

Comme j'étudie certains sites mobiles là-bas, je remarque beaucoup d'em ont un lien "voir le site complet".

Maintenant, je prévois de rediriger les visiteurs mobiles via .js dans la balise d'en-tête sur le site principal via une vérification de la largeur de l'écran, etc. (pas sûr de savoir si c'est la meilleure façon mais jusqu'à présent la plus facile sur mon cerveau)) (mais des suggestions aussi Bienvenue) mais quelque chose comme ça

if (screen.width<=XyZ||screen.height<=XyZ) //example iphone size lets say 320x480 window.location.replace("mobile site link here.") 

Encore une fois, je ne sais pas si c'est le meilleur moyen, mais sur des tests fictifs, cela fonctionne sur iPhone, certains amis Droids et un Blackberry. Mais ça marche.

De toute façon, ma question est donc, si je fais cette vérification sur chaque page … Comment puis-je avoir une option "voir le site complet"?

Utilisez PHP pour détecter les utilisateurs mobiles via $_SERVER['HTTP_USER_AGENT'] . La détection de JavaScript peut ne pas être fiable, car de nombreux navigateurs mobiles ne prennent pas en charge JS. Un «Voir le site complet» définira un cookie pour rejeter le site mobile, ce qui est détectable. Utilisez des cookies pour suivre les préférences de votre utilisateur.

En squelette

 <?php if (isset($_COOKIE['nomobile'])) { $style = "normal"; } else { if (preg_match('/iPhone|(...etc...)/', $_SERVER['HTTP_USER_AGENT'])) { $style = "mobile"; } else { $style = "normal"; } } 

Pour la page "Afficher le site complet":

 <a href="fullsite.php">Full Site</a> 

fullsite.php

 <?php setcookie('nomobile', 'true'); header('Location: index.php'); ?> 

Tout d'abord, accédez à l'URL suivante et téléchargez le fichier mobile_detect.php:

http://code.google.com/p/php-mobile-detect/

Ensuite, suivez les instructions sur la page et téléchargez le fichier mobile_detect.php dans votre répertoire racine. Insérez le code suivant sur votre index ou page d'accueil:

  <?php @include("Mobile_Detect.php"); $detect = new Mobile_Detect(); if ($detect->isMobile() && isset($_COOKIE['mobile'])) { $detect = "false"; } elseif ($detect->isMobile()) { header("Location:http://www.yourmobiledirectory.com"); } ?> 

Vous remarquerez que le code ci-dessus vérifie un cookie appelé «mobile», ce cookie est défini lorsque le périphérique mobile est redirigé vers la page mobile. Pour définir le cookie, insérez le code suivant sur votre page de destination mobile:

  <?php setcookie("mobile","m", time()+3600, "/"); ?> 

Consultez l'article complet à l' adresse suivante : http://www.squidoo.com/php-mobile-redirect

Ce n'est pas la meilleure façon, car très souvent, les navigateurs mobiles ne supportent pas JS.

Vous pouvez utiliser cette fonction:

 function its_mobile_browser($user_agent = '') { if (empty($user_agent)) { $user_agent = $_SERVER['HTTP_USER_AGENT']; if (empty($user_agent)) return false; } if (stripos($user_agent, 'Explorer')!==false || stripos($user_agent, 'Windows')!==false || stripos($user_agent, 'Win NT')!==false || stripos($user_agent, 'FireFox')!==false || stripos($user_agent, 'linux')!==false || stripos($user_agent, 'unix')!==false || stripos($user_agent, 'Macintosh')!==false ) { if (!(stripos($user_agent, 'Opera Mini')!==false || stripos($user_agent, 'WAP')!==false || stripos($user_agent, 'Mobile')!==false || stripos($user_agent, 'Symbian')!==false || stripos($user_agent, 'NetFront')!==false || stripos($user_agent, ' PPC')!==false || stripos($user_agent, 'iPhone')!==false || stripos($user_agent, 'Android')!==false || stripos($user_agent, 'Nokia')!==false || stripos($user_agent, 'Samsung')!==false || stripos($user_agent, 'SonyEricsson')!==false || stripos($user_agent, 'LG')!==false || stripos($user_agent, 'Obigo')!==false || stripos($user_agent, 'SEC-SGHX')!==false || stripos($user_agent, 'Fly')!==false || stripos($user_agent, 'MOT-')!==false || stripos($user_agent, 'Motorola')!==false ) ) return false; } return true; } 

Ou quelque chose de mieux, lol 🙂

Vous pouvez ajouter un paramètre de chaîne de requête à l'adresse de votre site Web tel que ?fullsite=true et inclure les éléments suivants dans votre condition if>

 var fullsite = getQueryString()["fullsite"]; if (fullsite != "true" && (screen.height <= xyz || screen.width <= abc)) //now redirect 

Vous aurez besoin de la chaîne de requête d'accès à la fonction suivante. Je l'ai retiré d'ici> chaîne de requête JavaScript

 function getQueryString() { var result = {}, queryString = location.search.substring(1), re = /([^&=]+)=([^&]*)/g, m; while (m = re.exec(queryString)) { result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]); } return result; } 

Et dans le lien, vous pouvez avoir>

<a href="mysite.com?fullsite=true"> Show me Full Site </a>

===========

En disant que jetez un oeil à CSS Media Queries. Il peut être nécessaire de modifier un peu votre architecture de conception mais c'est très utile.

La détection côté serveur est certainement la façon de le faire, car vous n'avez aucune garantie que JS soit disponible ou même activé. Un excellent script PHP pour la détection mobile se trouve ici http://detectmobilebrowsers.mobi/ et il est très utile dans le web.