我正在开发一个带有webview的Android应用程序。在API 21 Lollipop上,该网站正确地居中并且看起来很好。这是第一张照片。但是在API 16 Jelly Bean上,文本偏离中心。这是第二张照片。我注意到这也发生在浏览器中,所以这可能是一个HTML问题?为什么会发生这种情况?如何解决?
很抱歉,图片太大了,这些是直接来自android的截图。
答案 0 :(得分:1)
您之所以看到较旧的Android设备和Lollipop之间的区别,是因为KitKat Android使用自己的WebKit版本,而Lollipop可以通过Google Play商店更新。
https://developer.chrome.com/multidevice/webview/overview
不幸的是,任何处理Android WebView的人都必须从头开始处理各种怪癖(Android webkit.WebView and HTML5)。
Android L让它变得更容易(http://quirksmode.org/blog/archives/2016/02/webview_stats.html),但是如果你在这里和其他地方搜索,你会看到试炼和磨难(看着你三星)。
最简单的建议是将minSDK限制为可接受的值,或者到达数据源以查看是否有其他Feed可用。如果您无法控制内容,那么您可以做很多事情,至少在没有良好的html / css / javascript知识的情况下,因为您需要在加载数据时更改数据,当然来源可以随时打破它。
替代路径
如果支持旧版Android,则绝对需要。您可以考虑将自己的WebView包含在Crosswalk项目(https://crosswalk-project.org/)中,但代价是额外的构建,开发和支持复杂性。