2010-12-17 10 views
3

iPhoneブラウザとiPadブラウザを区別するDashcode Webアプリケーションを取得する方法を理解しようとしています。その実例はApple iPad User Guideです。 iPadには滑らかなdashcodeビルドインターフェイスが表示されます。 iPhoneはWebページにリダイレクトされます。Dashcode iPadとiPhoneブラウザを区別する

Howto force DashCode questionで助けを見つけました。

redirector.jsファイルを編集しています。次のことは、iPadがMobile Safariの代わりにDashcodeによって構築されたSafariレイアウトを使用するように強制します。これは私が望むものです。 iPhoneから参照すると、ファイルが見つかりませんというエラーが返されます。

// redirect to the more appropriate product 
if (DCProductURLs["mobileweb"] && DCshowiPhone) { 
    // Changed case so that the Safari layout is displayed on iPad 
    // window.location.href = DCProductURLs["mobileweb"]; 
    window.location.href = DCProductURLs["desktop"]; 
} 

ありがとうございます。

答えて

0

最終的にthis post at ScottRockers blogに基づくコードを使用して終了しました。私を正しい軌道に乗せるためのughoavgfhwに感謝します。

if ((navigator.userAgent.indexOf('iPad') != -1)) { 
    window.location.href = DCProductURLs["desktop"]; 
} 

if ((navigator.userAgent.indexOf('iPhone') != -1) || (navigator.userAgent.indexOf('iPod') != -1)) { 
    window.location.href = DCProductURLs["mobileweb"]; 
} 
4

test window.navigator.userAgent。 iPadにはi​​Padが、iPod touchにはiPodが搭載されます。

var oniPad = /iPad/.test(window.navigator.userAgent); 
+0

ねえ。これありがとう。私は最終的に少し違ったものを使ってしまいましたが、私の答えは正しい軌道に乗りました。私の問題の一部はObjective-CとJavascriptを混在させていました。ドー! – DenVog

0

私は多分それを行うための最善の方法ではありませんが、それは働いている、私のredirector.jsファイルを変更し、あなたが望むものを正確にやっている、ここに私のコードで私は願ってあなたのための作品:

var DCProductURLs = { 
    "mobileweb": "../mobile", 
    "desktop": "../safari" 
}; 

var DCshowiPhone = RegExp(" AppleWebKit/").test(navigator.userAgent) && RegExp(" Mobile/").test(navigator.userAgent); 

var DCqs = window.location.search.substring(1); 
if ((DCshowiPhone && DCqs.length > 0)||screen.width>1000) { 
    var components = DCqs.split("&"); 
    for (var f = 0; f < components.length; f++) { 
     if (components[f] == "p=desktop") { 
      DCshowiPhone = false; 
      break; 
     } 
    } 
} 

// redirect to the more appropriate product 
//var device= 
if (DCProductURLs["mobileweb"] && DCshowiPhone && screen.width<=960) { 
    window.location.href = DCProductURLs["mobileweb"]; 
} 
関連する問題