【问题标题】:Javascript / jQuery detect mobile from Tablet [duplicate]Javascript / jQuery从平板电脑检测移动[重复]
【发布时间】:2016-07-13 14:49:40
【问题描述】:

因此,我正在尝试确定这是否可能,或者如果不可能,其他人设法做些什么来尝试确定是否有。

所以我需要一种 Javascript 中的方法来允许平板电脑而不是手机,这就是大多数检测手机或平板电脑使用UserAgent 将它们组合在一起的问题,但是对于 android 平板电脑和手机都将匹配手机或平板电脑检测我如何区分它们。

所以我需要一些我可以做的事情

if(!isMobile() || isMobile() && isTablet()){
   // allow the system to load and work
}else{
   // Display notice system does not support mobiles currently.
}

不同设备上的界面图片 这是在我的笔记本电脑上,很好(1080p) 这是在我的表面上 (3000x2000)

请注意: 我什至没有使用屏幕尺寸,直到它被提供为答案,并且进一步认为不可能使用屏幕尺寸,因为无法正确检测屏幕尺寸。

我的主要问题是可以获取平板电脑和手机之间的区别。

【问题讨论】:

  • 您好,首先,您可以通过尝试创建TouchEvent 来检查您是否使用触控设备。其次,如果您使用的是触摸设备,请检查屏幕宽度。
  • 但是屏幕宽度是问题,我需要屏幕 DPI 来进行完整的计算以计算出屏幕有多大。
  • @TJ Crowder 这不是我提出的一个非常不同的问题的副本
  • @MartinBarker:不,这正是您在 cmets 中所说的您想要在该答案中执行的操作:检测屏幕的物理尺寸,以便您决定它是否适用于您的站点。这就是那个问题要解决的问题。如果该答案上的 cmets 是正确的,那么 A) 我的答案在这里没有帮助,并且 B) 那里的答案在可能的范围内有帮助。
  • 不,这不是我问你的,当你的回答以媒体查询的方式借给你时,我的问题与只是想知道是否有可能从手机检测平板电脑有关。

标签: javascript mobile tablet tablet-pc


【解决方案1】:

在许多方面,手机只是小型平板电脑;或平板电脑只是大型手机。因此,与其专注于随意的类别,不如专注于让您无法支持手机的事情。

如果是屏幕尺寸问题,请检测屏幕尺寸。

如果是连接速度的问题,请检测连接速度——或者让用户判断什么是足够快的。

等等

【讨论】:

  • 问题是整个界面是为更大的屏幕设计的>
  • @MartinBarker: 好了,当屏幕足够大时使用媒体查询显示主界面,并在较小的屏幕上显示消息。
  • 我在这里可能弄错了,但不要媒体查询或任何屏幕尺寸使用分辨率,所以当我需要 Width Height 和 DPI 来建立一个计算来等同于屏幕是否很大时,Width 和 Height够了。
  • @MartinBarker:坦率地说,我只是挑选一些适合设计的像素,让人们自己担心物理尺寸。不同的人对“太小”和“太大”非常的看法不同,你所做的任何事情都会有相当数量的错误。
  • 不,这样使用起来太小了。我会上传图片
【解决方案2】:

我建议将 isTablet 更改为 isTouch 并使用类似这两个函数的东西:

function isTouch() {
  return ('ontouchend' in window)? 'true' : 'false';
}
function isMobile() {
  if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent)) {
    return true;
  }
  return false;
}
function hasRequiredResolution(required_res) {
    return (window.screen.height * window.screen.width) >= required_res;
}

更新:我添加了一个方法来根据连接的客户端是否具有所需的分辨率来返回 true 或 false。这应该使您能够识别您想要定位的客户。

【讨论】:

  • 这是我试图防止的确切问题,iPad 和三星 Galaxy Tab 以及我的 Note 3 和 Galaxy S6 都将完全匹配,但我不希望 Note 3 或 S6 在那里匹配屏幕太小了……
  • 直到你找到一个解决方案来证明你需要的东西实际上是可行的,而无需构建你想要允许的每个导航代理的详尽列表,那么我真的认为你不应该标记对您的帮助请求的唯一答复,并试图提供一些建设性的帮助。
  • 我没有投票给你其他人我发表评论并等待回复。但感谢您的更新,它已接近所需,但分辨率对我的网站来说并不是最好的。我可能只需要检查触摸是否是 Windows,如果允许的话。然后为平板电脑构建应用程序。
  • 酷,我希望你一切顺利。
猜你喜欢
  • 2012-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-05
  • 2015-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多