2011-12-25 2 views
4

Я в настоящее время использую это, чтобы определить, установлены ли посетители или нет, и если не сразу, я предполагаю, что они пользователи iPhone, но теперь кажется, что это не всегда работает, как я хочу, потому что когда-то они были перенаправление на версию флэш моего сайта и когда-то человек, который был установлен флэш также перенаправляется на версию iPhone моего сайтаКак обнаружить только устройства iOS и перенаправить?

<!DOCTYPE html> 
<html> 
<head>  
    <script src="http://www.featureblend.com/flash_detect_1-0-4/flash_detect.js" type="text/javascript" charset="utf-8"></script> 

<script type="text/javascript"> 
    if(!FlashDetect.installed){ 
     window.location = "?flash=false";  
    }else{ 
     window.location = "?flash=true"; 
    } 
    </script> 
</head> 

вещи как бы я обнаружить, если они являются iPhone/IPad/IPod/AppleTV что-то вроде этого и перенаправить их на flash = false URL, и если они не указаны выше, будет перенаправлено на flash = true?

Я пытался найти, но на самом деле не могу найти точное, что я ищу

Спасибо и Merry X'Mas всем вам.

+0

какой серверный язык вы используете? – Virendra

+0

@ Virendra Я использую index.php – Ali

+0

Если вы используете PHP, вы также можете использовать .htaccess для этого – Virendra

ответ

8

Есть много учебных пособий о том, как достичь этого. Вы можете начать отсюда: http://www.hand-interactive.com/resources/detect-mobile-javascript.htm

Короче говоря, вы можете просто посмотреть на струнах «айфона», «Сделать ставку», «Ipad» и т.д. ... в строку агента пользователя с кодом похожее на это:

var uagent = navigator.userAgent.toLowerCase(); 

if (uagent.search("iphone") > -1 || 
    uagent.search("ipod") > -1 || 
    uagent.search("ipad") > -1 || 
    uagent.search("appletv") > -1) { 
    window.location = "?flash=false";  
} else { 
    window.location = "?flash=true"; 
} 

с Рождеством вас тоже :)

+0

Спасибо за ответ, поэтому я использую || или && условие для достижения остальных устройств? – Ali

+0

Проверьте мой обновленный ответ: они являются эксклюзивными условиями, если устройство является ipod, тогда оно также не может быть ipad или iphone, поэтому вам придется использовать ||. –

+0

Спасибо, это просто дает мне лучшее решение для моих посетителей: D Happy Holiday! – Ali

3

Попробуйте использовать что-то похожее на

var agent=navigator.userAgent.toLowerCase(); 
var is_iphone = ((agent.indexOf('iphone')!=-1); 
if (is_iphone) { conditional code goes here } 

Update: Вы также можете перенаправить пользователя с помощью файла .htaccess. Это правило Htaccess будет проверять, если пользователь использует iPhone, и если да, то перенаправление на подобласти «Iphone»

RewriteEngine on 
RewriteCond %{HTTP_USER_AGENT} iPhone 
RewriteRule .* http://iphone.mydomain.com/ [R] 

Если вы не знаете, как использовать файлы .htaccess here это сообщение в блоге, что я написал ранее об этом.

Чтобы добавить больше устройств добавить код, аналогичный JavaScript:

var agent=navigator.userAgent.toLowerCase(); 
var is_iphone = ((agent.indexOf('iphone')!=-1); 
var is_ipad = ((agent.indexOf('ipad')!=-1); 
if (is_iphone || ipad) { conditional code goes here } 

.htaccess

RewriteEngine on 
RewriteCond %{HTTP_USER_AGENT} iPhone 
RewriteCond %{HTTP_USER_AGENT} iPad 
RewriteRule .* http://ios.mydomain.com/ [R] 
+0

Это применимо к iPad/iPod и AppleTV ??? – Ali

+1

Нет, вам не придется проверять каждый тип устройства. – Virendra

+0

Спасибо, что это очень хорошая информация, но только один последний вопрос с обоим кодом, который вы предоставляете, как добавить дополнительные условия для других устройств? – Ali

1

Проверьте строку User-Agent для идентификации устройства пользователь использует и перенаправить соответственно. Вам нужно будет проверить все различные устройства, iphone, ipad ,, ipod, appletv и т. Д.

2

У меня была аналогичная проблема, пытающаяся динамически загружать файлы javascript только тогда, когда пользователь находился на IOS/сафари, вот что я пришел up with:

<script> 
    //include jquery when mobile. 
    var isIOS = navigator.userAgent.match(/iPad/i) != null || navigator.userAgent.match(/iPhone/i) != null; 
    if(isIOS){ 
     var script = document.createElement('script'); 
     script.type='text/javascript'; 
     script.src = 'js/jquery.min.js'; 
     document.getElementsByTagName('head')[0].appendChild(script); 
    } 
</script> 
Смежные вопросы