【问题标题】:Website on API 16 looks bad versus newer APIAPI 16 上的网站与较新的 API 相比看起来很糟糕
【发布时间】:2016-05-14 19:05:53
【问题描述】:

我正在开发一个带有 webview 的 android 应用程序。在 API 21 Lollipop 上,网站正确居中并且看起来不错。这是第一张照片。但是在 API 16 Jelly Bean 上,文本是偏离中心的。这是第二张图。我注意到这也发生在浏览器中,所以也许这是一个 html 问题?为什么会发生这种情况,我该如何解决?

抱歉图片太大了,这些是安卓直接截图。

【问题讨论】:

  • 您确实意识到 API 16 正在使用操作系统中包含的 WebKit,而 API 21 可能在最近发布的 Chrome 中。见:developer.chrome.com/multidevice/webview/overview
  • 不,我从来不知道。我有办法解决它吗?
  • 对不起,我不能提供比“您必须弄清楚为什么布局不是您所期望的那样”更好的建议。任何处理 Android WebView 的人都必须从一开始就处理各种怪癖 (stackoverflow.com/q/3930045/295004)。 Android L 让它更容易一些 (quirksmode.org/blog/archives/2016/02/webview_stats.html),但如果你在这里和其他地方搜索,你会看到考验和磨难(看着你三星)。
  • 你能帮我指出正确的方向吗?我在内部不熟悉 html 或 webviews,所以我不确定从哪里开始。它可能是 html,但我不确定要触摸哪些标签。
  • 要么将 minSDK 限制在可接受的范围内,要么与数据源联系以查看是否有其他提要可用。如果您无法控制内容,那么您无能为力,至少在没有良好的 html/css/javascript 知识的情况下,您需要在加载数据时更改数据,当然源可能会中断随时都可以。

标签: android html api webview


【解决方案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 限制在它看起来可以接受的范围内,或者联系数据源以查看是否有其他供稿可用。如果您无法控制内容,则您无能为力,至少在没有良好的 html/css/javascript 知识的情况下不会做,因为您需要在加载数据时更改数据,当然源可能会中断随时都可以。

备用路径

如果支持旧版本的 Android 是绝对要求。您可以考虑在 Crosswalk 项目 (https://crosswalk-project.org/) 中包含您自己的 WebView,但会增加构建、开发和支持的复杂性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多