0

之前有人问过这个问题,但答案并不完全是我需要的。

我需要在 Microsoft Edge 中区分它是否是平板电脑(桌面)。

1) 以下线程: 你能在 Windows 10 上使用 JavaScript 检测 Edge 和 IE11 中的“平板电脑模式”吗?

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

我怎么能确定他们不会?

答案if condition of window.PointerEvent根本不起作用,因为它是在桌面中定义的。

我无法使用此处建议的 CSS 媒体查询交互媒体功能: 有什么方法可以检测用户是否启动了 Microsoft Edge 平板电脑或桌面浏览器?

4

1 回答 1

0

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

唯一的区别是由于某些特定于设备的质量 - 例如,由于缺少硬件加速,手机上的编解码器支持可能会有所不同,并且 Windows 10 移动版不支持 Flash。由于 Windows 10 移动版具有不同的后台模型,因此目前也不支持 RTC(实时通信)API。最后,Windows 10 移动版不支持 Flash,以提供适合移动设备的现代、以触控为中心且节能的体验。因此,Continuum 中的 Microsoft Edge 不支持 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"); 
  }

嵌入使用ExternalInterface 调用的 Flash 电影将是检测 Flash 的最简单方法。

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

navigator.cpuClass

应该返回x86Surface 设备,但返回other手机。

此外,当将手机显示投射到电视时,用户代理会发生变化。它来自:

  • Microsoft Edge UA(移动)

    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>
    

至:

  • Microsoft Edge 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>
    

参考

于 2016-08-30T16:17:11.317 回答