DashCodeは、iPadとiPhoneブラウザを区別します
-
11-10-2019 - |
質問
iPhoneブラウザとiPadブラウザーを区別するために、DashCode Webアプリケーションを取得する方法を見つけようとしています。これの実用的な例は次のとおりです Apple iPadユーザーガイド. 。 iPadには、滑らかなダッシュコードが構築されたインターフェイスが表示されます。 iPhoneはWebページにリダイレクトされます。
私はいくつかの助けを見つけました ダッシュコードの質問を強制する方法.
Redirector.jsファイルを編集しています。次のことで、iPadはモバイル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"];
}
提案をありがとう。
解決 2
最終的に、いくつかのコードを使用して使用することになりました この投稿Scottrockersブログ. 。私を正しい軌道に乗せてくれた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"];
}
他のヒント
window.navigator.useragentをテストします。 iPadにiPadまたはiPod TouchにiPodに含まれます。
var oniPad = /iPad/.test(window.navigator.userAgent);
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"];
}
所属していません StackOverflow