我正在开发一个包含 3D 图形的软件。这些足够大,所以我决定使用 OpenGL 来保持非常流畅的动画。我选择了 THREE.js 图形库 (WebGL)。
通过 Web 浏览器读取 html 效果很好:WebGL 功能被识别。我在我的桌面(Win32/Firefox17,请不要根据我的配置评判我!)和 Nexus 10(Android 4.3、FF24 和 FF25Beta,尝试使用 Chrome30Beta,但没有乐趣......)。但是我需要访问本地数据,比如文件系统,来获取我的程序的信息。所以我用 WL 包装了我的代码,并将它作为一个应用程序部署在我的 Nexus 10 上......所以 WebGL 功能消失了...... :(
所以我找了一个原因:我在 IBM 网站上发现了两个不同的想法:一方面,我知道嵌入了 JS 引擎,另一方面,WL 使用平板电脑默认 Web 浏览器的引擎(我第一次明白)...
让我们准确地了解不同的引擎:在 Nexus 上,FF 显然有 Gecko 引擎,Chrome30 是 Blink(类似 webkit,版本 537.36)。当我直接在浏览器中阅读时,这些是 window.navigator.useragent 检测到的,不足为奇。在 Eclipse/WL 预览中,我得到了不同的解释器,这取决于我选择的浏览器,FF 或 IE(不是 Safari,我没有安装它),但不是我桌面上的解释器(使用的解释器比我的自己的FF...)。但是,当我检测到应用程序中使用的那个(包装在 apk 中之后),它返回一个 AppleWebkit 534.30/Worklight/6.0...
也许我错了(告诉我),但是如果引擎版本中有“Worklight”,并且即使我在平板电脑上抑制 Chrome 时也使用了 webkit(版本不同,但谁知道..),我奇怪的是,对于这个应用程序,在配置时,引擎是由 Cordova 或 WL 嵌入的。如果是这样,我同意它允许使用完全兼容的解释器读取代码,而不管硬件上安装的浏览器。但是当一个 webkit 引擎因为它支持的功能(比如 WebGL,非常部分支持)而让你不满意时,它看起来对我来说是个问题。
有人确认它是如何工作的吗?如果引擎与应用程序一起包装,您是否知道我们是否可以选择要包含的引擎,或者对其进行配置(例如启用 WebGL ;))?另一个想法?
谢谢,
文森特。