如何分辨Javascript代码运行在真机手机,还是DevTools 开发员工具中?

一种通过WebGL检测是否是开发员工具模拟的手机的方法

1 var canvas = document.createElement('canvas');
2 var gl = canvas.getContext('webgl');
3 
4 var debugInfo = gl.getExtension('WEBGL_debug_renderer_info');
5 var vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
6 var renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
7 
8 console.log(vendor);
9 console.log(renderer);

 真机vendor会返回手机信息,例如:

vendor:ARM

renderer:Mali-G610 MC6

而电脑仿真的返回电脑上的设备,例如:

vendor:Google Inc. (NVIDIA)

renderer:ANGLE (NVIDIA, NVIDIA GeForce RTX 2060 Direct3D11 vs_5_0 ps_5_0, D3D11)

posted @ 2022-09-30 09:44  Easy C#  阅读(160)  评论(0编辑  收藏  举报