在Chrome中打开或关闭设备仿真模式时进行检测

问题描述:

Chrome DevTools可以选择使用设备仿真模式。在Chrome中打开或关闭设备仿真模式时进行检测

我知道有一个way来测试模式是否为。但我想知道当它是激活停用,点击。

是否有任何我可以听到的事件,由浏览器触发,表明模式已打开或关闭?

+1

甲健壮的解决方案可能会希望监视RES ize事件,变化的devicePixelRatio,变化的userAgent,触摸模式检测的可用性以及orientationchange,并基于它们做出决定。这些信号可能意味着其他事情。 –

我落得这样做:

$(window).on('orientationchange', function(e) { 

    if (e.tagret && e.target.devicePixelRatio > 1) { 
     // Emulation mode activated 
    } else { 
     // Emulation mode deactivated 
    } 

}); 

作品谷歌浏览器(我的版本:58.0)。它是防弹的方式吗?不确定。虽然这对我的需求已经足够了。

orientationchange docs here

我的解决办法:

$(window).on('orientationchange', function(e) { 
    setTimeout(function() { 
     var emulationModeActivated = window.navigator.userAgent.indexOf('Mobile') !== -1; 
    }, 0); 
}); 

铬添加到Mobile在的userAgent设备仿真模式,例如,“的Mozilla/5.0(iPhone; CPU iPhone OS 10_3,例如Mac OS X)为AppleWebKit/602.1.50(KHTML,例如Gecko)CriOS/56.0.2924.75 移动/14E5239e Safari浏览器/ 602.1"

e.target.devicePixelRatio不与视网膜显示在Mac可用作值总是> 1