我正在尝试在中显示的某些动态HTML的CSS中使用本地字体(与应用程序一起安装的一种字体)WKWebView
。我已经阅读了许多Stack Overflow帖子和此网页。回顾我所做的事情:
字体(在本例中为ImpactLTStd.otf
)是iOS应用程序的一部分。
在应用程序提供的字体部分中,它作为应用程序plist的一部分输入。
根据所引用的网页,我可以确认Build PhasesImpactLTStd.otf
的Copy Bundle Resources部分中列出了,并使我相信正确地将捆绑了该应用程序。ImpactLTStd.otf
字体在CSS中列出为:
<style> @font-face {font-family: 'Impact LT Std'; src: local('Impact LT Std'), local('ImpactLTStd'), url('ImpactLTStd.otf'); format('opentype'); } </style>
我以这种方式用两种不同的方式引用字体(一种是按字体系列,另一种是按字体名称,以查看哪种有效,而两种无效):
<style> .box_root { overflow: auto; background-color: #000000; padding-top: 1.5em; padding-bottom: 1.5em; padding-left: 1.5em; max-width: 1440px; max-height: 640px; display: table; } .box_title { color: #ffd300; line-height: 1em; font-size: 85pt; font-size: 6vw; font-family: 'Impact LT Std'; text-transform: uppercase; } .box_description { padding-top: .5em; line-height: 1em; color: #ffffff; font-size: 65pt; font-size: 4vw; font-weight: bold; font-family: 'ImpactLTStd'; }
我将HTML加载到WKWebView
using中loadHTMLString
:
webView.loadHTMLString(getHtml(), baseURL: nil)
但是,WKWebView
使用CSS标记显示的HTML文本不使用Impact字体,而是使用一些类似于Times New Roman的默认字体。
有人知道我错误地做了什么步骤吗?
加载HTML字符串时未提供基本URL,这将导致字体无法加载。尝试访问捆绑包的主要资源路径,如下所示:
if let resourcePath = Bundle.main.resourcePath {
let url = URL.init(fileURLWithPath: resourcePath)
webView.loadHTMLString(getHtml(), baseURL: url)
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句