1

嗨,这个问题似乎很愚蠢。但目前我被困住了。

实际上我无法在 javascript 中确定“手机或平板电脑”我有两个 css 1. 用于手机 2. 用于平板电脑

在 ios 设备中非常容易。使用用户代理,我可以确定 iphone 或 ipad,从而能够包含所需的 css。

但在android中,我无法确定。我知道如果我知道设备的实际尺寸(英寸)是可能的。但是在javascript中这是不可能的,因为物理维度是硬件域的一部分。

可能是另一种方式可能是使用设备“纵横比”。但仍然不知道区分手机、标签和便笺的方法。

请帮帮我,有什么方法可以区分安卓手机平板电脑和笔记?

4

2 回答 2

2

您的问题归结为:什么是平板电脑?使用 iOS,很容易决定什么是手机,什么不是,因为 Apple 为我们划清界限。但是有这么多不同的设备运行 android,这要困难得多。

您写道,您创建了两个样式表,因此您可能最清楚在哪里划线。我的猜测是,您希望在屏幕宽度上至少有一定数量的像素才能将其称为平板电脑。所以,你可以用什么来检测:

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

您要求使用 JavaScript 方法进行检测,但我认为这不是解决您问题的好方法。您可能真正想看的是“媒体查询:如何定位桌面、平板电脑和移动设备?”中讨论的媒体查询。.

全面地说,这里是您如何检测 iDevice、android 或 HP 平板电脑(来自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 回答