Development #5698
Détection mobile
0%
Description
Il faut à la fois de manière privilégiée rediriger vers m.example.com sur une détection de mobile et laisser la possibilité à l'usager, sur m.example.com, de basculer sur la version desktop.
- http://blog.woorank.com/2014/06/how-to-redirect-mobile-users-on-your-website/ (ici est notée la possibilité d'utiliser simplement du js pour regarder la largeur de l'écran, et faire la redirection en fonction, j'aurais tendance à préférer ça à une redirection basée sur le user agent, vous en dites quoi ?)
- https://developers.google.com/webmasters/smartphone-sites/redirects infos générales google
- http://detectmobilebrowsers.com/ permet sans doute d'avoir une détection sur le user-agent qui fonctionne, mais qu'est-ce que c'est moche.
reg_b = re.compile(r"(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino", re.I|re.M) reg_v = re.compile(r"1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-", re.I|re.M)
Fichiers
Demandes liées
Historique
Mis à jour par Frédéric Péters il y a plus de 9 ans
- Assigné à mis à Frédéric Péters
Deux parties :
1) la détection du mobile, côté serveur, à base de user-agent, on peut soit l'avoir dans le code de wcs, soit dans la config du serveur http (et poser une variable d'environnement qui sera alors lue par wcs)
2) la redirection par défaut, en absence d'indication contraire (lire : un cookie), il faut qu'un accès à la version desktop envoie vers le nom de domaine mobile, encore faut-il connaître celui-ci, ça peut être un élément de configuration dans wcs, mais ça peut aussi être imaginé comme paramétrage dans le serveur http (SetEnv MOBILE_HOSTNAME m-eservices.au-quotidien.com pour apache, scgi_param MOBILE_HOSTNAME ... pour nginx).
Pour ma part, sans y avoir longuement réfléchi, je penche pour l'approche dans wcs.
Mis à jour par Jérôme Schneider il y a plus de 9 ans
Sans y avoir longuement réfléchi non plus l'approche dans w.c.s. me semble meilleur tout simplement parce-qu’elle sera accessible par plus de monde que la configuration du serveur HTTP.
Mis à jour par Frédéric Péters il y a plus de 9 ans
- Fichier 0001-automatically-redirect-mobile-user-agent-to-mobile-s.patch 0001-automatically-redirect-mobile-user-agent-to-mobile-s.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
C'est un patch qui fait le boulot mais à l'écrire je me suis quand même demandé si tout ça était réellement la meilleure manière de faire, si plutôt qu'avoir un nom de domaine différent et les galères associées, on ne pourrait pas simplement, sur le même nom de domaine, afficher le site mobile, ça simplifierait bien les choses, il me semble.
Mis à jour par Frédéric Péters il y a plus de 9 ans
Discussion avec Victor,
perso j'y vois pas d'inconvenient
j'y vois même plutot un avantage
c'est que l'usager n'a qu'une url
pas besoin de communiquer sur une version mobile spécifiquement
si le soucis que ça pourrait poser
c''est pour les sites existants.
je pense surtout à vincennes
ou il y a une intégration responsive
du coup plus d'intéret de cette intégration, et la ville préfèrera peut-être laisser le choix à l'usager
entre la maquette responsive specifiquement vincennes.
et une version purement mobile
je dis bien "peut-être"
Donc mon option maintenant serait de reprendre les choses pour fonctionner sur un seul domaine, et permettre de désactiver la bascule automatique vers un site mobile (au niveau du thème, au niveau du site-options ou via l'admin, je ne sais pas encore trop).
Mis à jour par Frédéric Péters il y a plus de 9 ans
- Fichier 0001-switch-to-mobile-version-if-appropriate-5698.patch 0001-switch-to-mobile-version-if-appropriate-5698.patch ajouté
Voilà le patch avec un seul site et bascule en mode mobile.
Pour désactiver le mode mobile sur un site donné, je n'ai pas mis d'option particulière, ça peut de toute façon se faire au niveau du thème, en créant un template.mobile.ezt identique au template.ezt.
Mis à jour par Frédéric Péters il y a plus de 9 ans
- Fichier 0001-switch-to-mobile-version-if-appropriate-5698.patch 0001-switch-to-mobile-version-if-appropriate-5698.patch ajouté
Patch mis à jour pour mettre un path au cookie, histoire qu'on ne se trouve pas avec /vie-pratique/ en mode normal et / en mode mobile.
Mis à jour par Frédéric Péters il y a plus de 9 ans
- Statut changé de En cours à Résolu (à déployer)
commit a1e8212e9dc970f5eb6f8b10194f3e1e39bc5e37 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Thu Oct 16 18:29:37 2014 +0200 switch to mobile version if appropriate (#5698)