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 上运行得更好。