1

こんにちは、この質問はばかげているようです。しかし、現在、私はそれが原因で立ち往生しています。

実際には、JavaScript で「モバイルまたはタブレット」を判別できません。2 つの CSS 1. モバイル用 2. タブレット用があります。

iOSデバイスでは非常に簡単です。ユーザーエージェントを使用して、iPhoneまたはiPadを判別し、それに応じて必要なcssを含めることができます。

しかし、アンドロイドでは、私は判断できません。デバイスの実際の寸法 (インチ) がわかれば可能です。しかし、物理的な次元はハードウェア ドメインの一部であるため、javascript では不可能です。

デバイスの「アスペクト比」を使用する別の方法かもしれません。しかし、モバイル、タブ、メモを区別する方法はまだわかりません。

Androidモバイルタブレットとメモを区別する方法はありますか?

4

2 に答える 2

2

あなたの質問は、タブレットとは何ですか?iOSを使用すると、Appleが私たちのために線を引くので、電話とは何かを簡単に判断できます。しかし、Androidを実行している非常に多くの異なるデバイスでは、それははるかに困難です。

あなたは2つのスタイルシートを作成したと書いたので、おそらくどこに線を引くかについての最良のアイデアがあります。私の推測では、タブレットと呼ぶには、画面の幅に少なくとも特定のピクセル数が必要だと思います。したがって、検出に使用できるものは次のとおりです。

if (window.outerwidth<920) {
  // phone
}
else {
  // tablet
}

JavaScriptで検出する方法を求められましたが、それが問題の良い解決策ではないと思います。おそらく本当に見たいのは、 「メディアクエリ:デスクトップ、タブレット、モバイルをターゲットにする方法」で説明されているメディアクエリです。

包括的に言うと、iDevice、android、またはHP Tablet(iScroll 4から)を検出する方法は次のとおりです。

var isAndroid = (/android/gi).test(navigator.appVersion),
isIDevice = (/iphone|ipad/gi).test(navigator.appVersion),
isTouchPad = (/hp-tablet/gi).test(navigator.appVersion);
于 2012-11-25T22:24:26.757 に答える
0

小さなタブレットと大きな電話の検出に関連していますか? 高ピクセル密度ディスプレイの最適化。次のコードでデバイス密度を確認できます。

var dpr = 1;
if(window.devicePixelRatio !== undefined) dpr = window.devicePixelRatio;

ディスプレイが可変サイズ以上かどうかを確認するには、次の関数を使用できます。

/**
 * Checks if the screen size is equal or above given length
 * @param screen_size diagonal size of screen, for example 7.0 inches
 * @return True if its equal or above, else false
 */
function checkScreenSize(screen_size) {
    var dpr = 1;
    if(window.devicePixelRatio !== undefined) dpr = window.devicePixelRatio;
    var width=window.outerWidth/dpr;
    var height=window.outerHeight/dpr;
    var screenDiagonal = Math.sqrt(width * width + height * height);
    return screenDiagonal >= screen_size;
}
于 2012-11-25T12:27:22.187 に答える