简短但显然棘手的问题: 如何区分桌面上的Microsoft Edge浏览器和Javascript中的Surface-Tablets?
Windows 10上的Edge显示了用户代理
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586
就我的研究结果而言,Surface设备上的用户代理是
Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Safari/537.36 Edge/13.10586
所以唯一的区别似乎是" Win64; x64",但我不能依赖它,因为它只显示当前的CPU架构,对吧?
我担心的是:我正在开发一个网络应用程序,它为触摸设备提供了一些特殊的菜单条目,因为它们不会识别双击或鼠标右键。所以在iOS / Android上,我可以很容易地解决这个问题,但对于Win10移动版和桌面版,很难实现。
关于如何将这些与环境区分开来,您还有其他提示吗?
答案 0 :(得分:2)
我猜您的移动设备 用户代理 字符串错误:
Mozilla / 5.0(Windows Phone 10.0; Android ;;)AppleWebKit /(KHTML,如Gecko)Chrome / Mobile Safari / Edge /。
可在MSDN处找到。
答案 1 :(得分:1)
移动设备包含桌面浏览器
中的某些事件你可以使用类似这个功能的东西
function isTouch() {
var touch = false;
try {
document.createEvent("TouchEvent");
touch = true;
} catch (e) {}
return touch;
}