问题标签 [device-detection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 检测像素比率/密度的最佳做法是什么?
我目前在我的网站上使用 JavaScript 进行移动设备检测,这样我就可以为移动或桌面用户提供不同的内容。
目前,我使用window.devicePixelRatio
andscreen.width
来确定用户是否在移动设备上,如下所示:
768px
是我们定义移动或桌面的点,因此 767 及以下为移动,768 及以上为桌面。
这很好用,但是我最近遇到了 Firefox 的一个问题,当 Firefox 放大和缩小时,它会改变window.devicePixelRatio
,所以:
这现在给我带来了一个问题,因为任何在 Firefox 上放大浏览器的用户都会获得该网站的移动版本。
我想知道是否有人知道获得与桌面浏览器分开的像素密度的不同或更好的方法。
我也使用了少量的用户代理检测,但是因为跟上不断变化的移动用户代理列表是一项艰巨的工作,所以我不可能同时依赖屏幕分辨率和用户代理时间。
如果有人对此有任何想法并且可以提供帮助,那就太棒了。
更新:
我刚刚遇到这个:
这篇文章中建议了这个快速的数学:
window.devicePixelRatio 在 IE 10 Mobile 中不起作用?
我已经对其进行了测试,它可以在 Firefox 中运行,并解决了我的问题,但不幸的是,现在在 Chrome 中出现了问题,所以:
我似乎找不到适用于所有事情的可靠解决方案。
browser - 如何设置我的网站的移动版本?
我知道我需要使用测量参数和其他加载快捷方式来使网站快速加载到移动设备上,而不是构建移动网站本身给我带来麻烦。
如果手机进入网站,我需要一个代码来显示浏览器重定向的位置。
我也需要知道如何实现它,我只写 html 和 css,我需要一个 FULL SNIPPET。我已经做了一些研究,很多编码人员就检测方法给出了他们的建议,但没有说如何实现这些方法。
javascript - 从移动网站解析 apple-touch-icon
对于像 www.example.com 这样的给定 URL,我想通过在 dom 中搜索此属性来提取苹果触摸图标:
问题是 example.com 没有在普通网站上提供这个标签,只是在移动 m.example.com 网站上。我认为他们使用服务器端设备检测并仅在移动设备上添加此标签。关于如何在此类网站上获取此图标的任何想法?
ios - iPad 与 iPad Mini 用户代理
我们正在做一些服务器端设备检测,需要将 ipad mini 用户驱动到一个页面,将 ipad 用户驱动到另一个页面。
有什么东西可以区分这两个用户代理吗?
iPad
Mozilla/5.0 (iPad; CPU OS 7_0_3 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B511 Safari/9537.53`
小型的
Mozilla/5.0 (iPad; CPU OS 7_0_4 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11B554a Safari/9537.53
我看到的唯一东西是 Mobile/11B511 和 Mobile/11B554a,但这是我们可以解决的持久值吗?
android - 如何检查设备是旗舰安卓设备
我有一个像http://www.minix.us/products/NEOX7.html这样的旗舰安卓设备。是硬件设备。所以我想检查我的应用程序是否设备是旗舰安卓设备
cordova - 在 express.js 服务器上检测 cordova 设备
嗨,我是 Cordova 又名 PhoneGap 的新手。我已经创建了一个 express.js 网站并尝试使用 Cordova 构建 ios 和 android 应用程序。
因此,只有一个网站。并且有 3 种方法(ios 应用程序、android 应用程序和网络浏览器)来解决这个问题。
我想弄清楚什么是方法,并在快速路线中提供不同的布局。
在 http 标头中,android 设备发送'x-requested-with': 'com.example.hello'
但 iOS 没有。在客户端 js 中可以使用 loacation.href 但在 express.js 中无法读取 location.href。
有没有办法找出 express.js 中的方法类型?
c# - 检测便携式设备在 Windows 中的插入
我正在使用一段 C# 代码来检测连接的设备并列出它们。该代码应该在 kisok 计算机上运行,并帮助客户轻松访问和上传他们的文件。下面的代码可以正常工作,只是它不能识别移动设备等便携式设备。
所以连接移动设备时收到的 mWParam 等于 DBT_DEVNODES_CHANGED (0x0007) 并且 mLParam 为 0。是否可以从此事件中识别便携式设备?我可以在这里添加相关的检测 API 吗?
我已经尝试过以下 WMI 代码,但就像之前 HandleEvent 仅在连接 USB 而不是手机时触发:(
asp.net-mvc - 使用 ASP.NET MVC 的跨设备 Web 应用程序
我目前正在开发一个必须针对移动设备(尤其是平板电脑和智能手机)进行优化的 ASP.NET MVC 网上商店。这是给我们工作中的客户的,但我正在家里对 ASP.NET MVC 设备检测进行一些研究。我用它创建了一个小应用程序,它似乎工作得很好。我喜欢通过为每种设备类型使用不同的视图来很好地分离所有内容的方式。
我现在正在努力解决的问题是,是否也为该网店使用ASP.NET MVC 设备检测,或者使用客户端响应框架,如 Bootstrap。我正在为这个决定而苦苦挣扎,因为 ASP.NET MVC 设备检测对我来说似乎并不真正“成熟”。在互联网上找不到太多关于它的信息,默认情况下它只支持移动视图,不支持平板电脑视图或其他任何东西。
我对设备检测犹豫不决的另一个原因是,带有移动设备用户代理字符串的标准 ASP.NET MVC 库可能不会更新,所以当新设备问世时(它们确实如此),网上商店正在显示桌面视图,而我们为移动设备提供了一个很好的优化视图。当然,也有用于最新设备检测的服务,例如51Degrees.mobile,但它们非常昂贵。(免费版本不支持检测平板电脑)
我找到了一种方法,可以使用本文中的示例为平板电脑创建不同的视图,但该示例使用正则表达式来检测智能手机和平板电脑,这当然是有时也过时了。
另一方面,我们有客户端响应解决方案(Bootstrap)。客户端响应式站点的缺点是不同的视图模式没有分开。HTML 未针对设备进行优化。该网站只是一种“加入”桌面版本,浏览器使用 CSS 媒体查询调整 HTML 页面。代码不像设备检测解决方案那样干净。
快速的问题:是否有任何免费或更便宜的方式来使用 ASP.NET MVC 设备检测?随着时间的推移,它会满足我们的需求吗?它会不会在某个时候过时?
在这种情况下,我很高兴听到您认为最好的选择。提前致谢。
javascript - 哪种技术可以隐藏内容丰富的右栏?
我正在为一本很棒的杂志建立一个移动网站,其中包含很多内容,其中部分内容很重。现在的问题是我必须隐藏移动网站上的整个右栏(是的,在这种情况下我需要它)。
我对移动设计进行了很好的研究,阅读了很多文章,但找不到解决这个问题的解决方案。通常用 CSS 或 JS 隐藏右列。但后来一切仍然加载。在这种情况下,右栏很大,内容很多,不加载它似乎是值得的,因为页面加载得更快。
我应该怎么办?
c# - 通过平板电脑检测网站访问
我是新手 .NET 开发人员。我有一个网站,我需要检测是否从平板电脑访问该网站。该网站有一个移动版本,但我的客户希望通过平板电脑访问该网站时,应显示主网站的修改版本而不是移动网站。因此,我需要专门检测来自平板电脑的访问。谁能帮我解决这个问题?