在Android 4.0和4.2.2中使用Web视图时,Google webfonts不起作用

在Android 4.0和4.2.2中使用Web视图时,Google webfonts不起作用,android,webview,google-webfonts,Android,Webview,Google Webfonts,当在我的Android应用程序中使用Google web字体时,它使用的是web视图,在Android的4.4版中,它们工作得很好。安卓4.2的一些设备显示默认字体,大多数工作正常。但是,在Android 4.0上,所有字体都默认为相同的默认字体 因为我们喜欢将Android 4.0和更高版本作为我们应用程序的目标,所以我正在寻找一种让Google web字体可靠工作的方法 该应用程序只不过是在web视图中从服务器打开html文件 更新: 事实证明,一些安卓4.2.2设备无法正确显示谷歌网页字体

当在我的Android应用程序中使用Google web字体时,它使用的是web视图,在Android的4.4版中,它们工作得很好。安卓4.2的一些设备显示默认字体,大多数工作正常。但是,在Android 4.0上,所有字体都默认为相同的默认字体

因为我们喜欢将Android 4.0和更高版本作为我们应用程序的目标,所以我正在寻找一种让Google web字体可靠工作的方法

该应用程序只不过是在web视图中从服务器打开html文件

更新: 事实证明,一些安卓4.2.2设备无法正确显示谷歌网页字体。目前还不清楚是什么使这些设备从我测试的设备中脱颖而出,以及web字体在哪里工作正常


如何才能使web字体在不同的Android版本和设备上可靠地工作?

Android 4.0.X中的WebView不支持web字体

在KitKat(4.4.X)中,谷歌改变了WebView的引擎

为了提高实际结果的可预测性,下面是一个例子。请注意,这不是一份正式名单。它是根据特定开发人员收集的统计数据编译而成的

我还没有找到关于这个问题的官方文件,这可能表明制造商 我们可以为自己的设备自由选择自己的WebKit版本。这可能解释了不同设备之间的差异

那怎么办呢

  • 对于4.4.x设备,下面是一个示例

  • 对于早期版本,我建议使用肮脏的技巧,例如:


  • 以上的答案都是有效的,让我们对这个问题有了深入的了解,感谢他们。我们不能在安卓4.0上使用网页字体,这太可惜了

    Android 4.2上webfonts问题的解决方案是,在Google用来包含实际字体文件的CSS中,他们指定了格式。这意味着在谷歌的CSS中,他们有如下代码:

    src: url("http://some.google.server/some/path/FontName.ttf") format('ttf');
    
    如果CSS(或HTML的
    节点)中存在
    format()
    子句,那么Android 4.2上的
    WebView
    中不会呈现字体。因此,解决方案很简单;CSS应该有这样一行:

    src: url("http://some.google.server/some/path/FontName.ttf");
    
    这使字体工作。然而,这并不是一个“简单”的解决方案。由于谷歌提供了包含此错误的CSS,您需要创建、包含/使用并提供您自己版本的CSS文件,如果您不想成为谷歌更新字体文件位置的主体,您需要自己托管字体文件