gpt4 book ai didi

java - 在 Android 5 的 WebView 上支持 WebGL

转载 作者:行者123 更新时间:2023-11-29 10:11:50 25 4
gpt4 key购买 nike

我有一个 Web 项目(取决于 WebGL),它可以在计算机和任何浏览器上运行。现在我正在尝试将此项目作为基于 Android 的手机上的应用程序打开。我使用 WebView 来完成这个。我的手机(Nexus 3)有 Android 4.3,正如我在 Android 5 之前了解到的那样,WebView 组件不支持 WebGL。从Android 5开始,WebView成为依赖于Chromium 37版本(可更新)的可更新独立组件,并开始支持WebGL。所以我在 Android 4.3 上遇到的错误是意料之中的。

在此之后,我尝试使用另一部手机(搭载 Android 5 和 Chrome 43 版的三星 galaxy S4)。那么应用程序应该运行良好,但在 WebView 上仍然出错。我试过 get.webgl.org还是一样的错误:

Error constructing CesiumWidget.

Visit http://get.webgl.org to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers.

详细错误信息如下:

RuntimeError: The browser supports WebGL, but initialization failed.

错误

at new RuntimeError (http://192.168.43.125:8090/TMAPW/lib/Cesium/Build/CesiumUnminified/Cesium.js:10657:19)
at new Context (http://192.168.43.125:8090/TMAPW/lib/Cesium/Build/CesiumUnminified/Cesium.js:96489:19)
at new Scene (http://192.168.43.125:8090/TMAPW/lib/Cesium/Build/CesiumUnminified/Cesium.js:120928:23)
at new CesiumWidget (http://192.168.43.125:8090/TMAPW/lib/Cesium/Build/CesiumUnminified/Cesium.js:130986:25)
at AMouseListener.Map2D.initWidget

这似乎仍然是配置问题,所以我尝试在 Chrome 而不是 WebView 上打开它,但仍然出现同样的错误。我按照说明在 Chrome 上启用了 WebGL。 `虽然 Firefox 工作正常。我有三个问题:

  1. 我好像做错了什么,我该如何解决?

  2. Android 是否仍然不支持 WebView 上的 WebGL,是否有任何方法可以打开依赖于 WebGL 的应用程序?

  3. 是否有任何其他方法可以将 WebGL 项目作为应用程序打开。 (我已经阅读了关于 cordovacocoon.js 但不确定是否可以通过这些来完成。)所以如果有一个工作正常我宁愿直接去

最佳答案

好吧,我想将其添加为编辑,但未被接受,因此我添加了我的发现作为答案:

我设法让它在任何装有 Android 4+android webview 的设备上与 CrossWalk 一起工作 sony xperia 手机,搭载 android 5。我想添加我发现的东西:

如果你想使用android webview,你的设备必须有android 5+并且你的设备不能在gpu_blacklist上。我在网上找不到gpu_blacklist 的设备列表,但有一种方法可以了解您的设备是否在gpu_blacklist 中。打开chrome,然后输入chrome://gpu,然后查看reset notification strategy field。如果是0x8252,那么你的设备支持webgl,如果是0x0000,那么你的设备在黑名单中。因此,对于 android 5+ 并且您的设备不在 gpu_blacklist 上,您可以将 webglandroid webview 一起使用。

如果您想要使用 chrome 而不是 android webview,即使是在 gpu_blacklist 上的设备,您也必须使用 chrome 版本 37+。要检查它,请打开 chrome,输入 chrome://version。打开 chrome 后,键入 chrome://flags,在该页面中启用 webgloverride software rendering list 字段。有了它,您甚至可以在 gpu_blacklist 上的设备或操作系统低于 android 5 的设备上使用 webgl

如果你的设备不能提供以上要求,像我的,你可以使用CrossWalk 它可以工作。但是,文档组织得不好,除了它自己的文档之外,您找不到太多信息,以防万一您遇到问题。 CrossWalk 起作用的原因是当您构建 apk 文件时,您可以发送命令行参数,例如 --ignore-gru-blacklist。然而,正如文档所述,如果您在 gpu_blacklist 上的设备上使用它,您的应用程序或整个设备可能会卡住。

关于java - 在 Android 5 的 WebView 上支持 WebGL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30844557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com