我正在构建一个基于画布的网页游戏,在桌面上以60fps的速度运行。它在Android上的chrome运行速度为60fps。我将它加载到一个phonegap应用程序中,fps表仍然读取60fps,但屏幕只是每隔几个滴答一次。是否存在刷新率限制器,迫使webview仅每秒钟绘制一次?还有什么其他的东西可以限制我的绘图,即使网站说它的重绘速度为60fps?
答案 0 :(得分:5)
默认情况下,PhoneGap将使用内置的默认浏览器,这不是chrome,除非您使用的是KitKat,但这是另一回事。
现在我在使用默认浏览器时遇到问题,即使是在获得用户签名的小型画布项目上,但这是由于触发火灾的速度很低......
无论如何,可能的解决方案是强制phonegap使用WebChromeClient而不是默认的,你可以通过在super.loadUrl
调用之前添加以下行来实现:
appView.setWebChromeClient(new WebChromeClient());
如果您强制使用WebChromeClient,请确保在需要时启用javascript,本地存储等等。还有一些PhoneGap插件可能会中断。如果你的游戏是纯HTML5而不是我建议考虑不使用phonegap为你的Android版本,建立一个简单的WebView应用程序在Android中很容易。
此外,如果您的游戏打算使用加速度传感器,请查看对浏览器的原生支持:Can I Use resources
希望它有所帮助。 埃米尔
答案 1 :(得分:1)
可悲的是,新的Webview与Chrome没有完全相同的功能。其中一个差异是Chrome使用的WebGL 3D画布。有关新Webview和Chrome之间功能差异的列表,请参阅here。