实际上不是

时间:2016-12-06 23:08:23

标签: javascript android android-webview webgl android-4.4-kitkat

我在Android中使用WebView中的WebGL。为了检测WebGL是否受支持,我使用的是this function

Android KitKat设备没有启用WebGL支持,如各处所述。但是,在我的4.4.2测试设备中,检测功能返回true,当从WebView调用http://webglreport.com时,它也表示支持WebGL1。

不出所料,没有任何东西被渲染出来。因此,如果WebGL不起作用,我想避免使用页面的WebGL版本。

有什么方法可以更好地检测webGL吗?或者我应该只说“如果Android< 5,甚至不试图检查是否支持WebGL,因为它可能是谎言”。

2 个答案:

答案 0 :(得分:1)

我有过与Android设备类似的体验。通过将Android浏览器列入黑名单解决(如果我理解正确的话,还可以查看网页浏览量)。更新的Chrome通常可以正常使用。

答案 1 :(得分:0)

根据@ kirill-dmitrenko的回答,但是避免解析用户代理,我已将所有不支持“let”构造(http://caniuse.com/#feat=let)的浏览器列入黑名单,这些浏览器虽然不相关,但似乎得到所有人的支持支持webgl的现代浏览器:

var supported;

try {
    var canvas = document.createElement('canvas');
    supported = !! window.WebGLRenderingContext && (canvas.getContext('webgl') || canvas.getContext('experimental-webgl'));
} catch(e) { supported = false; }

try {
    // let is by no means required, but will help us rule out some old browsers: http://caniuse.com/#feat=let
    eval('let foo = 123;');
} catch (e) { supported = false; }

if (supported === false) {
    console.log("WebGL is not supported");
}