是否有任何选项可以在视图功能中检测用户来自的浏览器是否与webGL兼容?
答案 0 :(得分:0)
检测WebGL是在前端使用JavaScript的问题(参见Proper way to detect WebGL support?),所以我认为在Django视图的后端没有办法直接执行此操作。
您可以做的是在用户访问的第一页上使用JavaScript执行检测,并使用AJAX将结果存储在服务器端变量中,您可以在后续请求中使用该变量来决定是否使用WebGL功能。
答案 1 :(得分:0)
扩展voodoo的答案,这里是快速确定客户端是否支持webgl的javascript
var canvas = document.getElementById("canvas");
var names = ["webgl", "experimental-webgl", "webkit-3d", "mozwebgl"];
var webgl_supported = false;
for(var i in names) {
try {
gl = canvas.getContext(names[i], { });
if (gl && typeof gl.getParameter == "function") {
webgl_supported = true;
break;
}
} catch(e) { }
}
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "/webgl_enabled_handler");
xmlhttp.setRequestHeader("Content-Type", "application/json; charset=UTF-8");
xmlhttp.send(JSON.stringify({webgl_enabled: webgl_supported }));
这假设在你的html页面/模板中有一个带有id" canvas"的画布元素。
在页面加载后,生成的json将作为POST请求发送到django
不幸的是,我怀疑是否有办法通过来自django的一般GET请求来确定webgl支持