2011-12-25 56 views
4

我目前正在使用它來檢測訪問者是否安裝了Flash,如果不是,我假設他們是iPhone用戶,但現在看來它並不總是像我希望的那樣工作,因爲有時他們會重定向到我的網站的Flash版本和某個誰得到安裝也閃重定向到我的網站的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?

我試圖找到,但確實無法找到確切的我要找的

謝謝你,聖誕快樂給大家。

+0

您使用什麼服務器端語言? – Virendra 2011-12-25 20:26:23

+0

@Virendra我使用index.php – Ali 2011-12-25 20:29:51

+0

如果您使用PHP,您也可以使用.htaccess來做到這一點 – Virendra 2011-12-25 20:33:25

回答

8

有很多關於如何實現這一教程。你可以從這裏開始: http://www.hand-interactive.com/resources/detect-mobile-javascript.htm

簡單地說,你可以簡單地查找字符串「iPhone」,「iPod」的,「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 2011-12-25 20:32:28

+0

檢查我的更新答案:他們是獨家條件,如果一個設備是一個iPod然後它不能也是一個iPad或iPhone,所以你將不得不使用||。 – 2011-12-25 20:41:07

+0

謝謝你給我的訪問者最好的解決方案:D Happy Holiday! – Ali 2011-12-25 20:46:51

3

嘗試使用類似的東西來

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

更新:您還可以通過使用.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 2011-12-25 20:29:24

+1

不,你將不得不檢查每種類型的設備 – Virendra 2011-12-25 20:32:04

+0

謝謝你是非常好的信息,但只有你提供的兩個代碼的最後一個問題,我怎麼能爲其他設備添加更多的條件? – Ali 2011-12-25 20:45:17

1

檢查用戶代理字符串來識別用戶正在使用的設備,並相應地重定向。你將不得不檢查所有不同的設備,iphone,ipad ,, ipod,appletv等

2

我有一個類似的問題,試圖動態加載JavaScript文件,只有當用戶在IOS/safari上,這就是我來與:

<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> 
相關問題