11
votes

Détecter le navigateur d'iPhone

Y a-t-il un script à détecter, si le visiteur utilise l'iPhone (quel que soit le navigateur, mai iPhone Safari, iPhone pour Opera ou etc.)?

puis fera une partie de mon javascript.

merci ...


0 commentaires

6 Réponses :


2
votes
<script language="javascript" type="text/javascript"> 
    //This redirects iPhone users to the iPhone-friendly site
    if ((navigator.userAgent.indexOf('iPhone') != -1) ||
    (navigator.userAgent.indexOf('iPod') != -1)) {
        document.location = "http://i.yoursite.com";
    }
This script checks for iPhone or iPod in the userAgent and then executes an action.  Give this a try.

1 commentaires

Ok, laissez-moi savoir comment ça se passe pour vous. Je l'ai utilisé plusieurs fois et semble récupérer. La prochaine étape consiste à ajouter d'autres cordes, puis à ajouter des actions pour chacune d'elles en fonction de la fonctionnalité souhaitée.



28
votes

Recherche sur le net Il y a deux manières courantes de la réalisation de cela. Mon préféré est-il en PHP sa juste si propre? Wow. : D

en php, vous pouvez écrire xxx

et en javascript, vous pouvez écrire < Pré> xxx

espère que cela aide.

pk


8 commentaires

Génial ... merci beaucoup donner au code dans le script php. On dirait que c'est la meilleure solution, car je veux faire une tâche différente pour différents navigateurs que je veux qu'elle soit traitée à partir du serveur: D


Je vois exactement ce que tu veux dire. J'aime php. Lorsqu'un utilisateur clic droit sur la source, vous ne pouvez pas voir l'un des codes utilisés pour programmer le site. C'est très flexible aussi bien. et c'est facile à utiliser. Tout le code est traité sur le serveur qui est un bonus. J'espère que cela t'aides. Si vous avez besoin d'une aide supplémentaire ... faites le moi savoir. La modification de ce code peut être effectuée si cela est nécessaire pour être effectué.


Infactez vous pouvez améliorer ce code pour vérifier également s'il s'agit d'un iPod. Si vous avez besoin d'aide pour cela, faites le moi savoir. De plus, alors que vous êtes ici marquer ce message comme répondit merci. Donc, les gens savent que c'est la bonne réponse et ils peuvent ensuite l'utiliser comme une référence que vous l'avez essayée. Merci


Oui, je vais marquer cela comme bonne réponse dès que je testerai cela dans l'environnement iPhone: D, maintenant je télécharge toujours le logiciel virtuel pour tester son test :) ... Merci beaucoup: D


Bonjour, je le teste déjà avec mon testeur C'est un travail, maintenant j'ai besoin d'iPad aussi. Pouvez-vous m'aider avec le code?


Salut pour la détection d'iPad est très simple. Vous pouvez soit le mot iPhone 'dans le code PHP avec' iPad 'et cela fonctionnera. Une autre solution que vous pouvez le faire que j'ai découvert aujourd'hui consiste à utiliser une ligne qui stockera une valeur booléenne dans une variable pour dire si un périphérique est détecté sur la base du nom que vous donnez, (iPhone, iPod, iPad) : $ isipad = (bool) Stros ($ _ serveur ['http_user_agent'], 'iPad');


Cela ne devrait-il pas être agent.indexof ('iPod') dans la version JS?


whoops, merci d'avoir repéré l'erreur. Des changements ont été faits



1
votes

Bien que j'aime les réponses ici, je pense qu'il est préférable d'utiliser ce qui suit ...

http://www.htacesstools.com/articles/detect-and-redirect-iphone/ p> xxx pré>

ou p>

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteCond %{REQUEST_URI} !^/my-iPhone-site/
RewriteRule .* /my-iPhone-site/ [R]


0 commentaires

7
votes

La sagesse conventionnelle est que les périphériques IOS ont un agent utilisateur pour Safari et un agent utilisateur pour l'UIWebView. Cette hypothèse est incorrecte car les applications IOS peuvent et personnaliser leur agent utilisateur. Le délinquant principal ici est Facebook.

Comparez ces chaînes d'agent utilisateur à partir de périphériques iOS: xxx

Notez que sur l'iPad, la chaîne d'agent utilisateur de l'UIWebView de Facebook comprend "iPhone" .

L'ancien chemin pour identifier l'iPhone en JavaScript: xxx

Si vous deviez aller avec cette approche pour détecter l'iphone , vous vous retrouveriez avec IS_Iphone étant true si un utilisateur vient de Facebook sur un iPad. Qui pourrait créer un comportement impair!

la bonne façon d'identifier l'iPhone en JavaScript: xxx

Nous déclarons is_phone d'être Faux sur iPads pour couvrir l'agent d'utilisateur bizarre Facebook UiWebView iPad. Il s'agit d'un exemple de la renonciation de l'agent utilisateur sans fielciable. Plusieurs applications iOS qui personnalisent leur agent utilisateur, plus le reniflement des utilisateurs d'utilisateurs. Si vous pouvez éviter l'agent utilisateur reniflant (indice: les requêtes de média CSS), faites-le.


0 commentaires

0
votes

Réponse tardive tardive à cette question, mais je l'ai trouvé utile.

au lieu de rediriger les utilisateurs mobiles, envisagez d'utiliser l'utilisation de la conception CSS réactive pour livrer des utilisateurs de bureau et mobiles au même contenu avec deux styles différents. Cela aide à éviter de fractionnement et de duplication du code. Vous pouvez coder CSS réactif à partir de zéro ou utiliser des frameworks préemballés comme Twitter Bootstrap.


2 commentaires

Je ne pense pas que le CSS réactif est bon pour la conception dekstop et mobile à la fois, car quelles informations nous souhaitons montrer à Dekstop et mobiles seront différentes. E.G Nous n'avons pas quelles informations sur mobiles qui rendent la conception compliquée. La conception réactive que je pense est conçue pour faciliter le site Web est l'air de l'écran d'affichage différent.


L'OP ne demandait pas parce que pour rediriger, mais pour éviter d'exécuter un script.



3
votes
//Detect special conditions devices
$iPod    = stripos($_SERVER['HTTP_USER_AGENT'],"iPod");
$iPhone  = stripos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$iPad    = stripos($_SERVER['HTTP_USER_AGENT'],"iPad");
$Android = stripos($_SERVER['HTTP_USER_AGENT'],"Android");
$webOS   = stripos($_SERVER['HTTP_USER_AGENT'],"webOS");

//do something with this information
if( $iPod || $iPhone ){
    //browser reported as an iPhone/iPod touch -- do something here
}else if($iPad){
    //browser reported as an iPad -- do something here
}else if($Android){
    //browser reported as an Android device -- do something here
}else if($webOS){
    //browser reported as a webOS device -- do something here
}

0 commentaires