【发布时间】:2013-01-29 03:30:02
【问题描述】:
字体在带有 Cordova/Phonegap 的 Windows Phone 8 中不适合我。
使用常用的 Cordova WP8 模板,我添加了一个简单的字体定义并将 * 设置为使用该字体或wingdings(更清楚的是它不起作用)。
该文件位于/fonts 文件夹中,设置为“内容”和“始终复制”。
(哇,这张图好大)
如果我在 Chrome 中运行它,它会正确加载字体:
即使我在 IE10(或 IE9 模式下)运行它,它也能正确加载字体:
但是,如果我在 Windows Phone 8 模拟器上运行它,我会得到翅膀:
有什么想法吗?解决方法?我应该直接跳桥吗?
更新:
有人建议改用 WOFF 字体格式,所以我去了http://www.font2web.com/ 并转换了我的 TTF 字体。我将新文件复制到我的www/fonts/ 文件夹中。和以前一样,我确保“构建操作”设置为Content 和Copy Always。
另外,我读到了一些关于在 deviceReady 事件触发后尝试加载字体的内容。值得一试......不能伤害任何东西。
这是一个名为 `fonts.css' 的 css 文件,它定义了一个包含所有可能组合的新字体:
然后,我编辑了股票 js/index.js 并添加了一些脚本,以便在 deviceReady 之后将新的 fonts.css 动态加载到 DOM 中:
顺便说一句:loadjscssfile() 是我从http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml 获得的一个小脚本,用于将fonts.css 文件的内容加载到 DOM 中。
我在 Internet Explorer 10/9、Chrome 和 Firefox 中检查过它。 3 秒后,字体发生变化。我在 Windows Phone 8 模拟器中尝试过。 3 秒后,翼翼。
【问题讨论】:
-
您能否尝试在默认浏览器中加载该页面,看看您会得到什么? WebView 可能会使用与浏览器相同的引擎,所以如果它在那里不工作,它就不会在应用程序中工作。
-
我尝试了您帖子中描述的所有内容,还尝试了对字体进行 base64 编码。这在浏览器中照常工作,但在设备上不起作用。