一些Bootstrap3 glyphicons在phonegap android webview上无法正确显示

Liu*_*olu 20 android twitter-bootstrap cordova glyphicons twitter-bootstrap-3

请看一下这个附带的截图.这是我的PhoneGap测试应用程序 - 采用Galaxy S4.

您应该看到铃声,书签,公文包和相机图标(以及更多)未按预期显示.

以下是我的观察:

  1. 所有图标都可以在PC和移动设备上的浏览器(chrome,safari)中正确显示
  2. 所有图标都可以在ios的同一个应用程序中正确显示(在iphone/ipad,ios7中检查)

"问号"只能在Android应用中看到.

有谁知道原因?

Joe*_*dge 25

这是转义序列的问题.如果您可以可靠地维护UTF-8编码的CSS文件,则可以覆盖Bootstrap默认值以使用实际的非转义字形.

(根据您的浏览器,以下代码似乎包含一堆框.但是,复制代码并将其粘贴到UTF-8文档中应保留值.)

@charset "UTF-8";

.glyphicon-bell:before {
  content: "";
}
.glyphicon-bookmark:before {
  content: "";
}
.glyphicon-briefcase:before {
  content: "";
}
.glyphicon-calendar:before {
  content: "";
}
.glyphicon-camera:before {
  content: "";
}
.glyphicon-fire:before {
  content: "";
}
.glyphicon-lock:before {
  content: "";
}
.glyphicon-paperclip:before {
  content: "";
}
.glyphicon-pushpin:before {
  content: "";
}
.glyphicon-wrench:before {
  content: "";
}
Run Code Online (Sandbox Code Playgroud)

您还可以更改转义序列以解决此问题,但浏览器支持会有所不同.如果您只针对Android/BlackBerry,则以下情况应该可以正常工作:

.glyphicon-bell:before {
  content: "\d83d\dd14";
}
.glyphicon-bookmark:before {
  content: "\d83d\dd16";
}
.glyphicon-briefcase:before {
  content: "\d83d\dcbc";
}
.glyphicon-calendar:before {
  content: "\d83d\dcc5";
}
.glyphicon-camera:before {
  content: "\d83d\dcf7";
}
.glyphicon-fire:before {
  content: "\d83d\dd25";
}
.glyphicon-lock:before {
  content: "\d83d\dd12";
}
.glyphicon-paperclip:before {
  content: "\d83d\dcce";
}
.glyphicon-pushpin:before {
  content: "\d83d\dccc";
}
.glyphicon-wrench:before {
  content: "\d83d\dd27";
}
Run Code Online (Sandbox Code Playgroud)