2023-10-31 13:49:34
解决方案:在小程序内嵌入的H5页面中,若字体在iOS系统失效,通常是由于小程序的webview对资源加载的限制所致。以下是具体解决步骤:
1. 配置小程序白名单小程序webview默认禁止加载外部非白名单资源,需将字体文件路径添加至白名单:
打开微信开发者工具,进入小程序项目配置(project.config.json 或直接在IDE的“详情”-“本地设置”中配置)。
在 request 或 downloadFile 合法域名 中添加字体文件的静态资源路径(如
若字体文件与H5页面同源,可直接添加相对路径(如 /static/fonts/custom.ttf)。
iOS要求所有资源必须通过HTTPS加载,否则会被拦截:
确认字体文件的URL以 https:// 开头。
若使用本地开发环境,需配置本地HTTPS服务(如通过webpack-dev-server的https: true选项)。
在微信开发者工具中开启 vConsole(通过vConsole库或IDE内置调试工具)。
查看是否有以下错误:
Failed to load resource: net::ERR_CERT_INVALID(HTTPS证书问题)。
Not allowed to load local resource(未配置白名单)。
若仍无法解决,可考虑:
通过以上步骤,可解决大部分小程序内H5页面字体在iOS失效的问题。