0

我正在开发一个包含 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 ;))?另一个想法?

谢谢,

文森特。

4

1 回答 1

0

Worklight 应用程序不捆绑解释器。该应用程序将使用捆绑在操作系统中的内容。

换句话说,Worklight 中的默认 WebView 是操作系统提供的,对于 Android ,它使用捆绑的 WebKit

这不是 Worklight 以往可以控制的东西。

也许,您可以以某种方式将 Firefox 引擎库捆绑到您的应用程序中并将它们全部连接在一起,但这样做的任务非常庞大且规模庞大……而且不受 IBM Worklight 的支持。另外,我不知道 Cordova 是否也支持此功能(它在 Worklight 中用于与本机功能交互)。

至于用户代理,作为对 IBM WebSphere Portal 支持的一部分,附加了字符串“Worklight”。

于 2013-10-22T08:39:53.157 回答