之前曾问过这个问题,但答案并不完全是我需要的。
我需要在Microsoft Edge中区分它是否是平板电脑(桌面)。
1)以下主题: Can you detect "Tablet Mode" in Edge and IE11 using JavaScript on Windows 10?
确实工作了,但我担心在下一版本中微软会改变这种行为。
我怎么能确定他们不会?
if condition of window.PointerEvent
的答案根本不起作用,因为它是在桌面中定义的。
我不能使用CSS Media Queries交互媒体功能,如下所示: Is there any way to detect if user has launched microsoft edge tablet or desktop browser?
答案 0 :(得分:0)
以下是Edge浏览器功能的硬件特定差异:
唯一的区别是由于某些特定于设备的质量 - 例如,由于缺少硬件加速,手机上的编解码器支持可能会有所不同,而且Windows 10 Mobile不支持Flash。由于Windows 10 Mobile具有不同的背景模型,因此目前也不支持RTC(实时通信)API。最后,Windows 10 Mobile不支持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 call的Flash电影是检测Flash的最简单方法。
navigator
对象的属性应该能够区分平板电脑和手机。例如:
navigator.cpuClass
应该为Surface设备返回x86
,而对于手机则返回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(Continuum)
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>
<强>参考强>