uni-app domModule.addRule,一加手机显示乱码
uni-app domModule.addRule,一加手机显示乱码
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10 | HBuilderX |
产品分类:
uniapp/App
PC开发环境操作系统:
Windows
HBuilderX类型:
Alpha
HBuilderX版本号:
3.1.4
手机系统:
Android
手机系统版本号:
Android 11
手机厂商:
一加
手机机型:
8T
页面类型:
nvue
打包方式:
云端
示例代码:
const domModule = weex.requireModule('dom');
domModule.addRule('fontFace', {
'fontFamily': "iconfont",
'src': "url('https://at.alicdn.com/t/font_2003008_qcvzbur90fj.ttf')"
});
或者本地也是
src: "url('/static/iconfont.ttf')"
操作步骤:
const domModule = weex.requireModule('dom');
domModule.addRule('fontFace', {
'fontFamily': "iconfont",
'src': "url('https://at.alicdn.com/t/font_2003008_qcvzbur90fj.ttf')"
});
或者本地也是
src: "url('/static/iconfont.ttf')"
预期结果:
正常显示iconfont
实际结果:
在一加8T,Android 11会乱码,其他手机不会
bug描述:
domModule.addRule,在一加手机会乱码,其他手机不会
更多关于uni-app domModule.addRule,一加手机显示乱码的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app domModule.addRule,一加手机显示乱码的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个已知的字体加载兼容性问题,在一加手机Android 11系统上确实存在。主要原因是字体文件加载和解析的兼容性差异。
建议解决方案:
- 使用base64嵌入字体 将字体文件转换为base64格式,直接嵌入CSS中:
@font-face {
font-family: 'iconfont';
src: url('data:font/ttf;base64,AAEAAAALAIAAAw...') format('truetype');
}
- 预加载字体资源 在页面初始化时提前加载字体:
const fontFace = new FontFace('iconfont', 'url(/static/iconfont.ttf)');
fontFace.load().then(() => {
document.fonts.add(fontFace);
});
-
使用unicode-range优化 如果只使用部分图标,可以提取需要的字符子集,减少字体文件大小。
-
降级方案 检测到一加设备时,使用图片图标替代字体图标:
const isOnePlus = /OnePlus/.test(navigator.userAgent);

