【问题标题】:Detect mobile device via Javascript通过 Javascript 检测移动设备
【发布时间】:2023-03-05 18:52:01
【问题描述】:

与本题相关:Detect Android phone via Javascript / jQuery

在新版本的 android sdk 中,原生浏览器不再返回代号“android”。 navigator.userAgent 返回类似:

mozilla/5.0 (X11; Linux x86_64) AppleWebkit7534.24 (KHTML, like Gecko) Chrome/11.0.696.34 Safari7534.24

有什么建议吗?这来自带有当前 Android 版本 4.1.1 的 HTC One S 的手机

【问题讨论】:

  • 这是因为您使用的浏览器来自mozilla或chrome,而不是android的默认浏览器。
  • 尝试功能检测而不是浏览器/设备检测。它要可靠得多。 (检查modernizr

标签: javascript android jquery


【解决方案1】:

this question。您确定不是在桌面模式下查看吗?股票浏览器和许多其他浏览器有两种不同的用户代理,具体取决于浏览模式。

【讨论】:

    【解决方案2】:

    永远不要使用浏览器嗅探!使用特征检测。有一个名为modernizr 的javascript 库,可以根据用户客户端的特性来执行操作。

    【讨论】:

      【解决方案3】:

      是的...这可能是因为您的浏览器处于“桌面模式”。

      您可能希望在小屏幕上显示您的网页的某些移动版本,因此您可以尝试:

      <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
      <script type="text/javascript">  
        if ((screen.width < 480) || (screen.height < 480)) {    
          location.replace('/m/');
        }  
      </script>
      

      您需要浏览器的视口元标记来报告实际的屏幕尺寸。

      编辑:
      根据this,您可能需要等待一段时间让浏览器“赶上”,然后再检查屏幕尺寸,所以我想使用起来会更好:

      <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
      <script type="text/javascript">  
        setTimeout(function() {
                     if ((screen.width < 480) || (screen.height < 480)) {    
                       location.replace('/m/');
                     }  
                   }, 200);
      </script>
      

      【讨论】:

        猜你喜欢
        • 2012-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-07
        • 1970-01-01
        相关资源
        最近更新 更多