小程序开发API之动态加载网络字体wx.loadFontFace

本文介绍了小程序中如何使用wx.loadFontFace动态加载网络字体,强调了iOS平台只支持HTTPS格式的字体链接,并提醒开发者注意字体文件大小和 CORS 支持问题。同时指出,canvas等原生组件不支持使用该接口添加的字体,对于报错情况给出了相应提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

wx.loadFontFace(Object object)

动态加载网络字体。文件地址需为下载类型。iOS 仅支持 https 格式文件地址。

注意:

  • 引入中文字体,体积过大时会发生错误,建议抽离出部分中文,减少体积,或者用图片替代
  • 字体链接必须是https(ios不支持http)
  • 字体链接必须是同源下的,或开启了cors支持,小程序的域名是servicewechat.com
  • canvas等原生组件不支持使用接口添加的字体
  • 工具里提示 Faild to load font可以忽略

wx.loadFontFace参数

在这里插入图片描述

object.desc 的结构

在这里插入图片描述

示例:

wx.loadFontFace({
      family: 'Bitstream Vera Serif Bold',
      source: 'url("https://sungd.github.io/Pacifico.ttf")',
      desc:{
        style:'normal',        
        weight: 'bold',
        variant: 'small - caps'
      },
      success: console.log
    })





### 微信小程序中压缩字体包的方法 #### 使用在线工具压缩字体文件 可以通过一些在线工具来实现字体文件的压缩和优化。例如,在线工具 **Transfonter** 提供了字体格式转换以及子集化功能,能够有效减少字体文件体积[^4]。 ```bash # 访问 Transfonter 官方网站 https://transfonter.org/ # 将 ttf 文件上传并选择需要支持的字符集 # 下载经过优化后的字体文件 ``` #### 转换为 Base64 格式嵌入样式表 另一种方式是将字体文件转换为 Base64 格式的字符串,并将其直接嵌入到 CSS 中。这种方式可以避免额外的 HTTP 请求开销,但也可能导致代码体积增大。因此适用于小型字体文件场景[^2]。 ```css @font-face { font-family: '字体名字'; src: url(data:application/font-ttf;charset=utf-8;base64,把上面转化base64格式复制到此位置) format('truetype'); } .box { font-family: '字体名字'; } ``` #### 利用 `wx.loadFontFace` 动态加载字体 通过调用微信小程序 API 方法 `wx.loadFontFace` 可以动态加载远程字体资源。这种方法适合处理较大的字体文件,因为它们存储于服务器端而非本地打包至应用内,从而节省小程序本身的容量限制[^1]。 ```javascript wx.loadFontFace({ global: true, family: "自定义字体名称", source: "url(https://example.com/path/to/font.ttf)" }); ``` #### 子集化技术减小字体尺寸 对于大体量的字体库来说,仅提取项目实际使用的部分字形是非常有效的瘦身策略之一。这通常涉及手动挑选或者借助专门软件自动分析 HTML/CSS 来决定保留哪些字符[^3]。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值