wujingquan
wujingquan
  • 发布:2025-09-17 16:12
  • 更新:2025-11-21 23:12
  • 阅读:154

【报Bug】uni.loadFontFace接口的global属性在App环境不生效

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows 11 pro

HBuilderX类型: 正式

HBuilderX版本号: 4.76

手机系统: 全部

手机厂商: 华为

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

测试过的手机:

Redmi 13 note pro+ , iPhone 16

操作步骤:

App.vue 的onLaunch 调用loadFontFace。或者某个页面调用loadFontFace

预期结果:

只需要loadFontFace一次,全部页面都应用。

实际结果:

只有当前页面生效。

bug描述:

uni.loadFontFace 这个api的global属性不能够设置全局页面生效,必须得每个页面设置一次。

2025-09-17 16:12 负责人:无 分享
已邀请:
DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

uniapp 还是 uni-app x ,如果是 uniapp 可以直接在 app.vue 里注册 font-face

  • wujingquan (作者)

    uniapp,打包app,非小程序

    2025-09-19 21:28

  • DCloud_UNI_OttoJi

    回复 wujingquan: 可以直接在 app.vue 里注册 font-face

    2025-09-22 15:00

  • wujingquan (作者)

    回复 DCloud_UNI_OttoJi: 全局生效只有小程序才生效,app不生效,这是最小重现repo:https://github.com/wujingquan/uni-app-loadfontface

    2025-11-21 11:20

wujingquan

wujingquan (作者)

使用plus.io.convertLocalFileSystemURL('_www/static/app/fonts/AlibabaPuHuiTi-3-65-Medium.ttf')去加载字体,在ios上,开发阶段、正式包都正常,但是在android开发阶段正常,正式包报路径错误:loadFontFace:fail NetworkError: A network error occurred.

最终解决方案:

  • APP:每个页面的onLoad中使用uni.loadFontFace加载/static/app/fonts下的字体
    • source: url("/static/app/fonts/AlibabaPuHuiTi-3-65-Medium.ttf")
  • 小程序:在App.vue的onLaunch中使用uni.loadFontFace加载网络字体+global:true
  • DCloud_UNI_OttoJi

    看到了,你可使用 css 加载 Static 本地字体 来完成注册,全局可用。

    2025-11-24 14:16

  • wujingquan (作者)

    回复 DCloud_UNI_OttoJi: 意思是确定了uni.loadFontFace的global属性在app是无效的了?

    2025-11-24 16:37

要回复问题请先登录注册