Windows 10 在Windows10上使用JavaScript检测Edge中的“平板电脑/触摸模式”?

Windows 10 在Windows10上使用JavaScript检测Edge中的“平板电脑/触摸模式”?,windows-10,microsoft-edge,feature-detection,device-detection,forward-compatibility,Windows 10,Microsoft Edge,Feature Detection,Device Detection,Forward Compatibility,这个问题以前被问过,但答案并不完全是我所需要的 我需要在Microsoft Edge中区分它是平板电脑还是台式机 1以下线程: 确实有效,但我担心在下一个版本中微软会改变这种行为 我怎么能确定他们不会呢 Windows.PointerEvent的if条件的答案根本不起作用,因为它是在桌面中定义的 我无法使用此处建议的CSS媒体查询交互媒体功能: 以下是边缘浏览器功能中的硬件特定差异: 唯一的区别是由于某些特定于设备的质量,例如,由于缺少硬件加速,手机上的编解码器支持可能不同,Windows 1

这个问题以前被问过,但答案并不完全是我所需要的

我需要在Microsoft Edge中区分它是平板电脑还是台式机

1以下线程:

确实有效,但我担心在下一个版本中微软会改变这种行为

我怎么能确定他们不会呢

Windows.PointerEvent的if条件的答案根本不起作用,因为它是在桌面中定义的

我无法使用此处建议的CSS媒体查询交互媒体功能:

以下是边缘浏览器功能中的硬件特定差异:

唯一的区别是由于某些特定于设备的质量,例如,由于缺少硬件加速,手机上的编解码器支持可能不同,Windows 10 Mobile不支持Flash。由于Windows 10 Mobile具有不同的后台模型,RTC实时通信API目前也不受支持。最后,Windows 10 Mobile不支持Flash,以提供适合移动设备的现代、注重触摸和节能体验。因此,Microsoft Edge在Continuum中不支持Flash

要检测RTC功能,请使用以下代码:

if (RTCRtpCapabilities)
  {
  initRTC();
  }
function initRTC()
  {
  var recvAudioCaps = RTCRtpReceiver.getCapabilities("audio"); 
  var recvVideoCaps = RTCRtpReceiver.getCapabilities("video"); 
  var sendAudioCaps = RTCRtpSender.getCapabilities("audio");
  var sendVideoCaps = RTCRtpSender.getCapabilities("video"); 
  }
嵌入一个使用闪光灯的Flash电影将是检测闪光灯最简单的方法

导航器对象的属性应该能够区分平板电脑和手机。例如:

navigator.cpuClass
对于地面设备,应返回x86,但对于电话,应返回其他

此外,用户代理在向电视播放手机屏幕时也会发生变化。它来自:

微软Edge移动电话

Mozilla/5.0 (Windows Phone 10.0; Android 6.0.1; Microsoft; <Device>) AppleWebKit/<Rev (KHTML, like Gecko) Chrome/<Rev> Mobile Safari/<Rev> Edge/<Rev>
致:

微软边缘UA连续体

Mozilla/5.0 (Windows NT 10.0; ARM) AppleWebKit/<Rev> (KHTML, like Gecko) Chrome/<Rev> Safari/<Rev> Edge/<Rev>
与桌面相比:

Microsoft Edge UA桌面

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/<Rev> (KHTML, like Gecko) Chrome/<Rev> Safari/<Rev> Edge/<Rev>
参考资料


这确实有效,但我担心在下一个版本中,微软会改变这种行为。我怎么能确定他们不会呢?你永远不能确定。但鉴于Windows 10 for PC刚刚推出几个月,我不会担心。你为什么要区分这一点?Patrick-例如,在桌面上,你可以用鼠标悬停,然后你可以看到工具提示,在平板电脑中,行为是不同的无悬停,我有很多不同行为的例子,但我认为这不是这里的范围。这不是一个真正的答案,但你可以先假设用户有一个鼠标,当你检测到一个pointerup事件时,然后将行为切换到一个更友好的触摸模式。我不知道win10和edge,但根据经验,不可能将装有IE 11的MS Surface与装有触摸屏的IE 11笔记本电脑区分开来。这是微软第一次开发这款产品时深思熟虑的决定。不确定他们是否使用Edge和Win10离开了此位置