要想判断真实的手机打开,而不是电脑模拟的手机打开,肯定不能通过userAgent
判断,因为电脑开发工具可修改。
想到了Navigator
的只读属性maxTouchPoints
是返回当前设备支持的最大同时触摸接触点数。
一般电脑没有触摸接触点数,而电脑模拟的手机也只有一个,而真实的手机却是 3-4个,以此来判断是否是真实的手机。
直接上代码
const checkPhone = () =>
navigator.platform.indexOf('Mac') === navigator.platform.indexOf('Win') &&
navigator.maxTouchPoints &&
2 < navigator.maxTouchPoints
js好像也可以伪造。这样不一定好使。
好像的确可以伪造 😂