2011-12-25 20 views
4

私は現在、訪問者にフラッシュがインストールされているかどうかを検出するためにこれを使用しています。もしそうでなければ、私は彼らがiPhoneユーザーであると仮定していますが、今はいつか、私のサイトのフラッシュのバージョンにリダイレクトし、いつかフラッシュがインストールされてしまった人も、事は、彼らがiPhone/iPadアプリ/ iPodの/ AppleTVのであれば、私は検出する方法をである私のサイトの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> 

にリダイレクトそのようなものをflash = false URLにリダイレクトし、それ以外の場合はflash = trueにリダイレクトされますか?

私が見つけることを試みてきたが、本当に私が

探している正確なものを見つけることができませんが、あなたのすべてにあなたとメリークリスマスをありがとうございました。

+0

どのサーバー側言語をお使いですか? – Virendra

+0

@Virendra私はindex.phpを使用しています – Ali

+0

PHPを使用している場合は、.htaccessを使用しても同じことが可能です – Virendra

答えて

8

これを実現する方法についてのチュートリアルがたくさんあります。あなたはここから起動することができます。 http://www.hand-interactive.com/resources/detect-mobile-javascript.htm

簡単に言えば、あなたは単に「のiPod」、「アプリ」など、文字列「iphone」を探すことができます...このようなコードを持つユーザーエージェント文字列に:

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 } 

に似たものを使用してみてください:あなたはまた、.htaccessファイルを使用してユーザーをリダイレクトすることができます。ユーザーがiPhoneを使用している場合は、このhtaccessのルールがチェックし、YESの場合、サブドメイン「iphone」

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

にリダイレクトする場合は、ファイルhereを.htaccessを使用する方法がわからない、私が書いたブログ記事がある場合それについて先に。より多くのデバイスを追加するには

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

非常に良い情報ですが、両方のコードで最後に1つ質問してください。どのようにして他のデバイスに条件を追加できますか? – Ali

1

ユーザーが使用しているデバイスを識別し、それに応じてリダイレクトするようにUser-Agent文字列をチェックしてください。

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>