Django视图检测客户端是否使用webgl兼容的浏览器

时间:2017-01-05 12:59:40

标签: django python-2.7 django-views webgl

是否有任何选项可以在视图功能中检测用户来自的浏览器是否与webGL兼容?

2 个答案:

答案 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支持