关于android:WebGL适用于某些移动平台,但不适用于其他平台

WebGL works on some mobile platforms, but not others

我正在开发一款需要 WebGL 才能正常运行的手机游戏,但 WebGL 只能在某些设备上运行。

我的 Nexus 10 平板电脑已更新至最新的 Android Lollipop。
当我从 Chrome 运行游戏时,我的游戏使用 WebGL,但是当我使用 cordova 打包游戏时,游戏不使用 WebGL,而且速度非常慢。我也在其他几个设备上测试了该行为:

  • WebGL 作品:

    • 三星盖乐世 S5 (4.4.4)
    • 黑莓隐私 (6.0.1)
  • WebGL 不工作

    • 连结 10 (5.1.1)
    • 三星盖乐世 S3 (4.3)
    • iPad 迷你 1 (9.3.5)
    • 三星 Galaxy Tab 3 (4.4.2)

我也尝试过使用 CrossTalk,但它创建的应用程序无法启动。启动画面后,它有黑色背景,没有任何反应。

如何修复或调试 WebGL 无法在某些设备上运行的问题?


我设法让它工作,不使用 WebGL 的主要原因是某些设备在 GPU 中没有特定功能,默认情况下禁用 WebGL。强制使用 WebGL 的唯一方法是,您需要使用 CrossWalk 并同时忽略 gpu 黑名单。

首先我使用以下命令添加了 CrossWalk 插件:

1
cordova plugin add cordova-plugin-crosswalk-webview

然后我修改了 config.xml 以包含这部分

1
[cc]

我还签署了 APK 以供发布,这使应用程序正常运行。

添加此首选项迫使我的 Nexus 10 使用 WebGL 及其超快。
此外,CrossWalk 速度非常快,使该应用程序在我的新 BlackBerry Priv 上运行得更好。