【发布时间】:2014-05-23 03:36:11
【问题描述】:
我正在开发一个使用 Angular 1.0.8 和 Cordova 3.1 构建的应用程序,以支持 iOS 和 Android。由于某些信息是专有信息,因此我给出了一般性描述,但希望它足以解释。
我正在努力修复我们看到的一个错误,其中包含使用(使用 chart.js)构建的图表的一个页面在 Nexus 4 上无法正确呈现。我们拥有的测试设备运行的是 Android 4.2.2 ,尽管在其他 Nexus 4 设备上也发现了该错误;但不适用于其他 Android 设备。该图表将显示两次,其中一个图表与另一个重叠,或者根本无法显示。无论哪种方式,打开和关闭我们的导航菜单(这是一个使用 JS 和 CSS3 translate3d 和转换为函数的画布外菜单)似乎会重置视图并且图表正确显示。
我已经为整个应用逐步添加/删除了 CSS,但仍然无法确定究竟是什么导致了这个渲染问题。如果我从页面上的其他元素(不是包含相关图表的元素)中删除位置:相对、宽度声明和浮点声明,那么图表似乎可以正确显示;但是,这不是一个可行的解决方案。
我做过的事情:
- 在我们的清单文件中设置 android:hardwareAccelerated="true"
- 删除了典型的有问题的 CSS 属性(box-shadows、border-radius、transitions 和 translate3d 等);问题仍然存在
- 尝试了几种已知的有助于解决与 CSS 过渡相关的闪烁的方法,例如 -webkit-backface-visibility: none、-webkit-perspective: 1000、-webkit-transform-style: preserve3d 等。没有人解决这个问题。
我在整个应用程序中看到了其他渲染故障,这些故障已通过上述调整得到解决;但是,图表渲染问题仍然不受影响。
同样,这只发生在 Nexus 4 上。不幸的是,它是我需要支持的设备,而且这个错误会造成大量的 UI 块;用户无法读取图表数据。
在这一点上,我什至不太确定我的故障排除工作应该集中在哪里。任何帮助,任何建议,都将不胜感激;希望有人提到一些有助于澄清此设备上正在发生的事情的内容。提前致谢。
【问题讨论】:
标签: android angularjs cordova html5-canvas