如何仅检测是否是iOS设备并重定向?

时间:2011-12-25 20:22:35

标签: iphone flash redirect detect

我目前正在使用它来检测访问者是否安装了闪存,如果没有立即我假设他们是iPhone用户但是现在它似乎并不总是像我希望的那样工作,因为有时他们被重定向到我的网站的Flash版本,有时安装了Flash的人也重定向到我的网站的iPhone版本

<!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给你们所有人。

4 个答案:

答案 0 :(得分: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";
}

祝你圣诞快乐:)

答案 1 :(得分: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]

答案 2 :(得分:2)

我有一个类似的问题,只有当用户在IOS / safari上时才尝试动态加载javascript文件,这就是我提出的:

<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>

答案 3 :(得分:1)

检查User-Agent字符串以识别用户正在使用的设备并相应地重定向。您将需要检查所有不同的设备,iPhone,ipad,ipod,appletv等