如何检测移动的或桌面,而不是得到“欺骗”的Chrome开发工具

wbrvyc0a  于 2023-10-14  发布在  Go
关注(0)|答案(3)|浏览(100)

我正在尝试检测用户何时在我的应用程序上使用移动终端。
通常,我们会使用用户代理或触摸屏进行检测,但开发工具中的Chrome移动的模式会改变这两种模式。
你有什么想法,我怎么能检测到移动的或桌面,而不被欺骗的Chrome开发工具?

wz8daaqr

wz8daaqr1#

而不是去的设备类型,你可以检查操作系统。Here是您可以使用的可能值的列表。

windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'];
android = "Android";
typeOfOS = window.navigator.platform;

if (windowsPlatforms.includes(typeOfOS)) {
     //do for windows
} else if(typeOfOS === android){
     //do for android
}
cetgtptt

cetgtptt2#

你可以在CSS里做。您可以使用@media来查看屏幕大小是否比通常桌面的屏幕大小小,通过此操作,您将能够使应用程序具有响应性。看看这个代码:

body {
  --background-image: url('https://thumbs.dreamstime.com/b/vertical-banner-template-hands-typing-computer-office-supplies-distance-education-e-learning-obtaining-university-156390588.jpg');
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  background-image: var(--background-image);
  background-size: 100vw 100vh;
  z-index: -1000;
}

#submit-form {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 180px;
  width: 300px;
  background-color: white;
  border-radius: 10px;
  border: 2px dashed;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-around;
  z-index: 1000;
}

#email-input {
  height: 30px;
  width: 220px;
  border-radius: 10px;
}

#submit-button {
  height: 30px;
  width: 80px;
  border-radius: 10px;
  background-color: lightgreen;
  border: 1px dashed;
}

@media all and (min-width: 1000px) {
  body {
    background-image: url('https://img.freepik.com/free-vector/online-education-students-view-lessons-through-mobile-devices-during-distance-learning_178888-361.jpg?w=2000');
  }
  #submit-form {
    height: 250px;
    width: 500px;
  }
  #email-input {
    height: 50px;
    width: 300px;
    border-radius: 10px;
  }
}

在这里,我首先为移动的设备设计网站,然后,我检查用户是否在桌面上,如果是,我再次使网站响应。
这是针对样式部分的,但是,如果你想在JavaScript中检测它呢?
你可以使用一个简单的函数:

function findUserDevice() {
  const isOnMobile = false;

  if(window.innerWidth < window.innerHeight) {
    isOnMobile = true;
  }
  return isOnMobile;
}

这是我平时用的,希望对大家有帮助!

hgc7kmma

hgc7kmma3#

一种不检查操作系统或窗口大小的方法是通过功能检测,通过检查触摸事件,如下所示:

const isMobile = 'ontouchstart' in window || navigator.maxTouchPoints > 0;

这将返回一个布尔值,以确定用户是否在移动的上,而不会在移动的上使用桌面视图。

相关问题