H5 自定义字体使用指引
小于 1 分钟
H5 自定义字体使用指引
在 H5 环境下,使用自定义字体时,需要在判断到字体加载完成后触发一次文本的重新测量。原因是:H5 自定义字体是异步加载的,Kuikly 初始化时字体还没有加载完成,从而测量出的尺寸是默认字体的尺寸,从而会导致自定义字体的文本显示不全等问题。
接入步骤
1. 配置自定义字体
配置例子如下,配置在 h5App/src/jsMain/resources/index.html 里。
<style>
@font-face {
font-family: 'Kanit Medium';
src: url('./assets/Kanit-Medium.ttf') format('truetype');
}
</style>
2. 字体加载完成后触发重新测量的调用
在 H5 应用的入口文件 Main.kt 中,判断到字体加载完成后调用 delegator.fontLoaded()。
// h5App/src/jsMain/kotlin/Main.kt
fun main() {
// ...
// When using custom fonts, fonts are loaded asynchronously, so a re-layout needs to be
// triggered after loading completes to re-measure text with the correct font metrics
document.asDynamic().fonts.load("16px 'Kanit Medium'").then({ _ ->
delegator.fontLoaded()
})
}