我在我的应用程序中使用自定义字体。它们被复制到 bundle 并硬编码到 appName-info.plist。 这种字体在整个应用程序和 UIWebView 中都能完美运行。
我正在加载 htmlString
[webView loadHTMLString:htmlString baseURL:nil];
我在带有 css 的 webView 中使用这种字体:
fontFamily: fontName
但是当我尝试使用 WkWebView 自定义字体时不起作用。 WkWebView 显示随机默认字体。
我尝试使用基本 url 中的主包路径加载它并在 css 中使用 font-face - WkWebView 仍然显示随机字体。
如何让自定义字体在 WKWebView 中工作?
最佳答案
我遇到了同样的问题,在我的情况下,我可以WITHOUT使用base64编码和GCDWebServer来修复它。
场景:
- WkWebView 加载是通过字符串 html
- WkWebView 使用本地 .css
- 字体是本地的,并在顶级元素中添加
- 字体条目在 appName-info.plist 中的键
UIAppFonts
/Fonts provided by application
下提供(注意:我们需要这个舞蹈是因为 WKWebView 忽略了这个键,但是声明它仍然是一个好主意,这样您就可以在 native 控件中使用字体)
解决方案:
在顶层的.css中添加字体,如下所示
@font-face
{
font-family: 'FontFamily';
src: local('FontFamily'),url('FontFileName.otf') format('opentype');
}
演示元素:
注意:新的演示应用程序运行可能需要 2-3 秒,我已经针对长 html 字符串对其进行了测试,它与 UIWebView 的工作方式相同,没有延迟。相同的字体在 WKWebView 中可能看起来比 UIWebView 小一些。
关于ios - 在 WKWebView 中使用自定义字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25785179/